VC6.0編譯問題 (轉)

gugu99發表於2008-05-17
VC6.0編譯問題 (轉)[@more@]VC6.0編譯問題
問:我用自己設計的類編了一個。當我在編譯項中設定為de編譯時,程式執行一切正常,當為release時程式卻出了問題.怎麼會這樣?

答:1)為什麼你既建立執行緒又將一個類成員作為執行緒處理?這樣的話誰來你的析構?你不能試圖將文件視窗類中的成員作為執行緒,象這樣:

Cc::SomeFunction() { AfxBeginThread(static_cast(ThreadProc(this))); } Ccapi::ThreadProc(LPVOID ptr) { // ptr and this are equal... Ccapi* ptrApi = (Ccapi*)ptr; };

如果你是這樣做的話可能需要做些改動
 2)顯然,m_pOwner或者m_pOwner->m_hWnd是不正確的,試試下面的:

if (NULL == capi) ::MessageBox(NULL, "bad capi", "CapiThread", MB_OK); else if (NULL == capi->m_pOwner) ::MessageBox(NULL, "bad Owner", "CapiThread", MB_OK); else if (!::IsWindow(capi->m_pOwner->m_hWnd)) ::MessageBox(NULL, "bad hwnd", "CapiThread", MB_OK);


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-1004157/,如需轉載,請註明出處,否則將追究法律責任。

相關文章