我在我的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