如果你是用VC,那么在工程里加入各CPP文件,生成项目/解决方案的时候就会自动编译这些CPP并连接它们了。
内部过程是:
编译各CPP文件,得到OBJ
然后再连接这些OBJ得到EXE
mfc中CWnd包括其他类的成员方法真正的实现代码大部分是在动态链接库mfc42.dll中,你在使用mfc类库时除了包含afxwin.h头文件,还链接了mfc42.lib这样一个库文件(在afx.h头文件中#pragma
comment(lib,"mfc42.lib")),在链接阶段这些库文件会告诉链接程序(cl.exe)真正地实现代码在哪,这样你生成的程序.exe文件会依赖mfc42.dll这样一个模块(如果你使用mfc静态库就不需要了),你的程序在运行的时候会加载mfc42.dll到进程空间当中,在程序运行时调用CWnd的成员方法的地方会转到动态链接库中去,你可以创建一个动态链接库将你所写的类比如CHope导出(编译后会生成一个lib文件),然后在创建另外一个工程,添加一个CHope类引入声明的头文件,然后链接前面生成的lib文件,就可以使用
CHope类了,不需要hope.cpp文件,你生成的程序会依赖前面生成的dll文件,这样你的程序在运行的时候需要将hope.dll拷贝到.exe文件相同目录下,mfc就是这样,还有什么不懂可以再问
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)