c – AfxGetInstanceHandle()触发断言失败

我在我的C程序中使用MFC(使用Visual Studio 2008).我必须在程序的开头调用AfxGetInstanceHandle().

此功能触发断点:

AFXWIN_INLINE HINSTANCE AFXAPI AfxGetInstanceHandle()
{ ASSERT(afxCurrentInstanceHandle != NULL);
return afxCurrentInstanceHandle; }

ASSERT语句失败.我想知道,为了初始化afxCurrentInstanceHandle,我们尝试访问之前,你是否有事要做.

PS:我在一个共享的DLL中使用MFC.

编辑

我的代码是这样的:

int _tmain(int argc,_TCHAR* argv[])
{

  CoInitialize(NULL);
  AfxGetInstanceHandle();
  return 0;
}

我想使用InstanceHandle来初始化一个CComModule,然后使用它来操作com对象.

解决方法

如果你使用MFC,你不应该提供一个main,wmain,_tmain或者WinMain – MFC提供自己的入口点.将初始化代码放在您的CWinApp派生类的InitInstance中.如果您没有CWinApp派生类,则没有正确创建该项目 – 请使用Visual Studio向导创建MFC应用程序.

相关文章

一.C语言中的static关键字 在C语言中,static可以用来修饰局...
浅谈C/C++中的指针和数组(二) 前面已经讨论了指针...
浅谈C/C++中的指针和数组(一)指针是C/C++...
从两个例子分析C语言的声明 在读《C专家编程》一书的第三章时...
C语言文件操作解析(一)在讨论C语言文件操作之前,先了解一下...
C语言文件操作解析(三) 在前面已经讨论了文件打开操作,下面...