我在我的C++程序(使用Visual Studio 2008)中使用MFC。我必須在我的程序開始時調用AfxGetInstanceHandle()。AfxGetInstanceHandle()觸發斷言失敗
該功能會觸發一個破發點:
AFXWIN_INLINE HINSTANCE AFXAPI AfxGetInstanceHandle()
{ ASSERT(afxCurrentInstanceHandle != NULL);
return afxCurrentInstanceHandle; }
斷言語句失敗。我想知道在我們嘗試訪問它之前,您是否需要執行以初始化afxCurrentInstanceHandle
。
PS:我在共享的DLL中使用MFC。
編輯
我的代碼是這樣的:
int _tmain(int argc, _TCHAR* argv[])
{
CoInitialize(NULL);
AfxGetInstanceHandle();
return 0;
}
我想,以初始化CComModule
,然後用它來操縱COM對象使用InstanceHandle
。
因此,如果沒有全部的CWinApp對象,就沒有辦法訪問AfxGetInstanceHandle() – Arthur 2011-03-02 12:52:40
我覺得我做錯了什麼,而我並不真的需要使用COM對象。謝謝。 – Arthur 2011-03-03 15:56:54
Downvote,因爲這是不正確的。對於Window/GUI應用程序,您的聲明是正確的,項目wizzard將創建一個CWinApp派生類。但是,當您使用MFC支持創建控制檯應用程序時,將創建帶有main(_tmain)函數的源代碼,並首先調用AfxWinInit來設置MFC。 – 2013-06-28 11:48:50