八一八在共享DLL中使用MFC和在靜態庫中使用MFC

最經在用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,你妹啊,就這樣跑起來了!!!總結

求前輩們解釋……項目

相關文章
相關標籤/搜索