MFC的库务必用AfxWinInit()显示的初始化吗
MFC的库必须用AfxWinInit()显示的初始化吗?
我用VC2010建立一个控制台程序,勾选了支持MFC。
发现自动生成的代码里面有:
这里的所谓的初始化MFC指的是什么? 用MFC工程向导建立的3对话框工程或者单文档/多文档工程,并没有这样的函数调用啊? 还是说这个函数调用被MFC工程向导建立的工程给隐含了?
不调用这个函数又会如何呢?
------解决方案--------------------
那是因为LZ创建的是控制台程序,所以你把AfxWinInit注释掉是可以的,其相当于把你开始选择的的那个“勾选了支持MFC”的功能又去掉了。但是如果你当初选择创建的是MFC工程的话,你再删掉试试!看看能编译通过吗?
我用VC2010建立一个控制台程序,勾选了支持MFC。
发现自动生成的代码里面有:
// initialize MFC and print and error on failure
if (!AfxWinInit(hModule, NULL, ::GetCommandLine(), 0))
{
// TODO: change error code to suit your needs
_tprintf(_T("Fatal Error: MFC initialization failed\n"));
nRetCode = 1;
}
这里的所谓的初始化MFC指的是什么? 用MFC工程向导建立的3对话框工程或者单文档/多文档工程,并没有这样的函数调用啊? 还是说这个函数调用被MFC工程向导建立的工程给隐含了?
不调用这个函数又会如何呢?
------解决方案--------------------
那是因为LZ创建的是控制台程序,所以你把AfxWinInit注释掉是可以的,其相当于把你开始选择的的那个“勾选了支持MFC”的功能又去掉了。但是如果你当初选择创建的是MFC工程的话,你再删掉试试!看看能编译通过吗?