这一句中LoadImage加载的橘唤颤资源需要释放,应该函数末尾处添链乎加一句
::DeleteObject(m_hBitmap)
你应该通过msdn查找LoadImage这个函数,你圆败会发现msdn上说明了这个函数需要手动释放资源。
类似LoadImage这样的函数还有很多。
提示“mfc100ud.dll丢失”。解决之后文件变大很多。
使用VC2010生成的可执行程序移植到其他环境中运行,会提示“mfc100ud.dll丢失”。
于是用下面方法解决:
(1)configuration->Active(Debug)
configuration
properties->general->use
of
MFC,选择use
MFC
in
a
static
library。
(2)configuration->
debug
C/C++->code
generation->runtime
library->multi-threaded
debug(/MTd)
------解决方案--------------------------------------------------------你是将mfc的debug库静态编码到exe中了,所以变大。
------解决方镇衡行案--------------------------------------------------------1.程序移植到其他环境运行,需要其他机器上有相应版本的mfc.
否则就要用静态编译
2.而且一般用release版本。
------解决方案--------------------------------------------------------debug版的库一般都不release版的大很多
------解决方案--------------------------------------------------------被静态连接进去了,也就是说它的原代码直接编译到你的exe里面去了
你完全可以在你的发布项目中带上mfc100ud.dll
然后还是用动态连接,这样就不会增大体积了
------解决方案--------------------------------------------------------不要用静态编译!把缺少的库给添加上就可以了
------解决方案--------------------------------------------------------把
相应的的dll
拷贝到exe文件所在的目录下就成
------解决方案--------------------------------------------------------debug版本当然大了,用release版本
------解决方案--------------------------------------------------------你做成一个安装程序,把所有的文件都拷贝的安装目录下面,然后给你的EXE创建一个快捷方式,这拦局些事情都是安装工具帮你做好的御哗,你设置一下就行。用户通过快捷方式打开就可以了,别的什么都不用管。用户如果自己找到安装目录把这个DLL删掉了,那就是用户的事了。
不过发布版本还是用RELEASE版本比较好。
探讨引用:被静态连接进去了,也就是说它的原代码直接编译到你的exe里面去了
你完全可以在你的发布项目中带上mfc100ud.dll然后还是用动态连接,这样就不会增大体积了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)