最经在用MFC作一个新浪的小东西,遇到的问题已让我无力吐槽,学到用时方恨少!string
今天总结一下在有win32控制台转到MFC时遇到的一个问题。首先说一说共享DLL和静态库:打包
使用VS2008,在项目属性中有一项MFC的使用,有三种设置: 1.使用标准Windows库 2.在共享DLL中使用MFC 3.在静态库中使用MFC 第一种顾名思义。第二种指的是打包时一些MFC的DLL的内容没有被包含在EXE文件中,因此EXE文件较小,可是运行时要求系统中要有相关的DLL文件。第三种是将DLL中的相关代码写进EXE文件中,文件较大,可是能够在没有相关DLL的机器上运行。配置
因为当初配置环境耗费了很大的精力,本想使用静态库来使程序在不一样机子上跑起来,但是让人头痛的缓冲区溢出来了。老是提示“其缘由多是堆被损坏或者它所加载的任何DLL中存在BUG”因为在MFC中我用到了CString向string的转化,因此就认为是否是这里的问题,搞到头痛也没解决问题……程序
后来忽然想到既然是堆被损坏,或者DLL有BUG,那么是否是因为DLL加载到EXE中形成了堆的损坏呢?就将属性调到了共享DLL,你妹啊,就这样跑起来了!!!总结
求前辈们解释……项目