Visual Studio C++程序正常运行的代码把"Use of MFC"切换成Static library后,就编译不通过,请教怎么办
答案:3 悬赏:10 手机版
解决时间 2021-03-27 10:07
- 提问者网友:浮克旳回音
- 2021-03-26 19:25
Visual Studio C++程序正常运行的代码把"Use of MFC"切换成Static library后,就编译不通过,请教怎么办
最佳答案
- 五星知识达人网友:人间朝暮
- 2021-03-26 20:42
选第二个, use MFC in static library
难道你没是MFC框架程序?追问就是选static就编译不过。默认是standard。
难道你没是MFC框架程序?追问就是选static就编译不过。默认是standard。
全部回答
- 1楼网友:洒脱疯子
- 2021-03-26 22:48
切换后,还需要做修改,解决这些错误
~~~~~~~~追问我在用一个开源小型gui库叫fltk,很容易在官网找到,下载。在windows和linux下都可以直接编译。linux下make install就可以直接编译。如果你能帮我搞定windows的编译一个exe任意地方运行,我可以适当付费。
~~~~~~~~追问我在用一个开源小型gui库叫fltk,很容易在官网找到,下载。在windows和linux下都可以直接编译。linux下make install就可以直接编译。如果你能帮我搞定windows的编译一个exe任意地方运行,我可以适当付费。
- 2楼网友:山君与见山
- 2021-03-26 21:49
因为MFC作为动态库和静态库的情况下,生成的代码框架都完全不同,所以无法直接转换,要么你就重新建工程,一开始就选择静态MFC。
当然,还有一种方法,其实很简单,在你电脑上类似“C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\redist\x86\Microsoft.VC100.MFC”的目录里,找到mfc的那几个dll动态库,跟你的发布的exe做成一个包,全部放在一起,就可以在任何电脑上直接运行了。
比如,我用的VS2010,依赖的dll就是mfc100.dll追问我基本可以确定写的并不是mfc代码,即便建立控制台工程也可以编译,只需要在预处理的input里填几个静态lib,以及头文件路径。还有你说的一开始就选静态mfc的菜单可以截图么?我这里有完整代码,加上库来不过几M,代码只有几行,你想尝试么?搞定的付费。追答呃,我工作比较忙,实在不好意思了,只能大概说个思路。
其实你只需要把exe依赖的dll放在一起发布,就没什么问题了。追问问题就是不知道依赖哪些,如果要手工复制也不现实啊。追答拷到没有安装VS的电脑上运行,会提示缺少哪个dll的,手工复制一遍,以后直接打包不就得了。追问这哪行,又不像.net那样是复制就可以运行的。追答vs框架的程序,都是复制dll就可以运行的。追问api-ms-win-crt-runtime那你说这个找不到在哪复制?追答http://blog.csdn.net/huqiao1206/article/details/50768481
可以自己搜索一下的。追问那也要求安装,而不是复制某个dll或lib追答dll都可以直接复制到exe的同目录下,就可以的。
当然,还有一种方法,其实很简单,在你电脑上类似“C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\redist\x86\Microsoft.VC100.MFC”的目录里,找到mfc的那几个dll动态库,跟你的发布的exe做成一个包,全部放在一起,就可以在任何电脑上直接运行了。
比如,我用的VS2010,依赖的dll就是mfc100.dll追问我基本可以确定写的并不是mfc代码,即便建立控制台工程也可以编译,只需要在预处理的input里填几个静态lib,以及头文件路径。还有你说的一开始就选静态mfc的菜单可以截图么?我这里有完整代码,加上库来不过几M,代码只有几行,你想尝试么?搞定的付费。追答呃,我工作比较忙,实在不好意思了,只能大概说个思路。
其实你只需要把exe依赖的dll放在一起发布,就没什么问题了。追问问题就是不知道依赖哪些,如果要手工复制也不现实啊。追答拷到没有安装VS的电脑上运行,会提示缺少哪个dll的,手工复制一遍,以后直接打包不就得了。追问这哪行,又不像.net那样是复制就可以运行的。追答vs框架的程序,都是复制dll就可以运行的。追问api-ms-win-crt-runtime那你说这个找不到在哪复制?追答http://blog.csdn.net/huqiao1206/article/details/50768481
可以自己搜索一下的。追问那也要求安装,而不是复制某个dll或lib追答dll都可以直接复制到exe的同目录下,就可以的。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯