为什么vc中程序运行后没有exe文件?求助~ 5
展开全部
在VC下运行,编译器会自动查找所需的库文件,不管是静态链接还是动态链接。
但是单独打包EXE文件,如果不选静态链接MFC库,编译器不会将你程序中所用到的MFC库打包到exe文件中,自然会出错了
记得打包EXE时选静态链接就OK
用了静态链接MFC库连接exe。在VC外面可以运行了。
但是我VC里直接按F5运行,居然在原来在外面exe出错的那一行发生了错误。
简单的说用了
使用
动态链接MFCVC外EXE:不正确VC里运行:正确
静态链接MFCVC外EXE:正确VC里运行:不正确
静态链接库(lib)与动态链接库(dll)的比较:
首先,静态链接库与动态链接库都是共享代码的方式,也可称为程序模块化的方式;
静态链接库:
lib中的指令都被直接包含在最终的EXE中,因此exe运行时不再需要lib文件;
不能再包含其他的动态链接库或者静态库;
动态链接库:
dll与EXE文件独立存在,所以发布EXE时需要同时发布dll文件;
可以再包含其他的动态链接库或者静态库;
建议:
请最好使用动态链接库(dll)进行程序的模块化,静态链接库(lib)过时了(应用程序升级上就能看出其劣势);
但是单独打包EXE文件,如果不选静态链接MFC库,编译器不会将你程序中所用到的MFC库打包到exe文件中,自然会出错了
记得打包EXE时选静态链接就OK
用了静态链接MFC库连接exe。在VC外面可以运行了。
但是我VC里直接按F5运行,居然在原来在外面exe出错的那一行发生了错误。
简单的说用了
使用
动态链接MFCVC外EXE:不正确VC里运行:正确
静态链接MFCVC外EXE:正确VC里运行:不正确
静态链接库(lib)与动态链接库(dll)的比较:
首先,静态链接库与动态链接库都是共享代码的方式,也可称为程序模块化的方式;
静态链接库:
lib中的指令都被直接包含在最终的EXE中,因此exe运行时不再需要lib文件;
不能再包含其他的动态链接库或者静态库;
动态链接库:
dll与EXE文件独立存在,所以发布EXE时需要同时发布dll文件;
可以再包含其他的动态链接库或者静态库;
建议:
请最好使用动态链接库(dll)进行程序的模块化,静态链接库(lib)过时了(应用程序升级上就能看出其劣势);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询