首页 MFC 其他 mfc的WinMain是怎样加载到工程中的?
mfc的WinMain是怎样加载到工程中的? PDF 打印 E-mail
用户评价: / 0
好 
MFC - 其他
作者:Administrator   
周日, 20 7月 2008 09:24

mfc程序的WinMain代码在哪里?这是一个被问烂的问题,常规的答案说是mfc已经写好了。你要是想看,直接F10开始运行,就可以看到WinMain的代码了。WinMain的代码在appmodule.cpp中。

但是,你想过这个问题没有呢?WinMain所在的文件appmodule.cpp并没有被列在你的dsp中,怎么会被编译?这可是和dsp的作用反常啊

mfc程序的WinMain代码是mfc已经写好了。直接F10开始运行,就可以看到WinMain的代码了。WinMain的代码在appmodule.cpp中。

但是,你想过这个问题没有呢?WinMain所在的文件appmodule.cpp并没有被列在你的dsp中,怎么会被编译?这可是和dsp的作用相反啊

那么除掉编译,就只能在link时获得WinMain的代码了。而好像没有特别的lib被添加到你的工程中啊,VC怎么知道要链接哪个lib?

lib被链接除了在dsp的link选项中列出外,还可以用代码显式表明:#pragma comment(lib,”libname.lib”)

如果用的是shared mfc dll,也就是dll版本的mfc,appmodule.cpp中的WinMain被编译到mfcsxx.lib中,这个lib被afx.h显式的include,然后afx.h又一般在你的stdafx.h中,直接或间接。

 

这样,WinMain的代码就通过头文件用连接器link到你的程序中来啦,MFC初学者一上来就高屋建瓴,忘记细节原理罗

对于mfc工程,比如mfc dialog工程,你要是再在自己创建的工程文件中写一个WinMain,也是可以的哦,你试试看,运行哪个WinMain?