VS創建的exe文件在xp及win10等版本運行錯誤的問題&mfc臨時目錄設置

最近使用vs編了一個小程序,在xp運行時提示“不是有效的win32應用程序”,修改方法如下:

1.工程屬性->鏈接器->系統->子系統,選擇控制檯或窗口,在下面一行“所需的最低版本”裏填入5.01

2.常規->MFC的使用,選擇“在靜態庫中使用MFC”

3.C/C++ ->代碼生成->運行庫,選擇“多線程/MT”

 

若編譯後出現LIBCMT.lib(invarg.obj) : error LNK2005: ___pInvalidArgHandler 已經在 LIBCMTD.lib(invarg.obj) 中定義

解決辦法:鏈接器—>輸入->忽略特定默認庫:libcmt.lib

生成DLL時,若提示nafxcw.lib(oletyplb.obj) : error LNK2001: 無法解析的外部符號 @__security_che

解決辦法:C/C++-->預處理器,把WIN32,NDEBUG,_WINDOWS,_MBCS,_USRDLL,MSGBOX_EXPORTS,_WINDLL,_AFXDLL中的_USRDLL,刪除,就可以正確編譯了

在Release版本中,不能添加忽略特定默認庫libcmt.lib

若包含的文件不在工程根目錄下,可以通過C/C++ ->常規,選擇“附加包含目錄”進行添加。

添加時最好使用相對路徑,把當前目錄最好也加進去,如 ..\CAN\Config      ..\CAN

設置MFC臨時目錄,將SDF文件移除:工具-->選項--> 文本編輯器--> C/C++--> 高級--> 回退位置:這裏填入臨時目錄路徑

設置PDB臨時目錄,將PDB文件移除:項目-->屬性-->鏈接器-->調試-->生成程序數據庫文件,填入路徑,如:D:\MFC-pdb緩存\$(ProjectName)\$(TargetName).pdb

針對動態鏈接庫DLL文件的配置

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章