在VC下运行,编译器会自动查找所需的库文件,不管是静态链接还是动态链接。
但是单独打包EXE文件,如果不选静态链接MFC库,编译器不会将你程序中所用到的MFC库打包到exe文件中,自然会出错了
记得打包EXE时选静态链接就OK
用了静态链接MFC库连接exe。在VC外面可以运行了。
但是我VC里直接按F5运行,居然在原来在外面exe出错的那一行发生了错误。
简单的说用了
使用
动态链接MFC VC外EXE:不正确 VC里运行:正确
静态链接MFC VC外EXE:正确 VC里运行:不正确
静态链接库(lib)与动态链接库(dll)的比较:
首先,静态链接库与动态链接库都是共享代码的方式,也可称为程序模块化的方式;
静态链接库:
lib中的指令都被直接包含在最终的EXE中,因此exe运行时不再需要lib文件;
不能再包含其他的动态链接库或者静态库;
动态链接库:
dll与EXE文件独立存在,所以发布EXE时需要同时发布dll文件;
可以再包含其他的动态链接库或者静态库;
建议:
请最好使用动态链接库(dll)进行程序的模块化,静态链接库(lib)过时了(应用程序升级上就能看出其劣势);
你看看是不是在OnTimer函数里面有OnClose()一类的函数
你在VC里运行是用debug还是release模式?看运行正常是在什么模式下。
可能是没有找到必要的dll文件
清理一下,重新编译看看,我遇到过