一、X86,即一般普通PC上跑的程序版本,不用修改工程屬性
二、X64
1、設置工程平台---會在工程目錄下生成 X64 文件夾
在工具欄--->生成--->配置管理器 窗口
設置“活動解決方案平台”和“平台” 為X64,“平台”那里沒有X64,就點擊新建。
2、選擇目標機器平台
在工具欄--->項目--->xx屬性 窗口
選擇 “配置屬性”--->"鏈接器"--->"高級"--->"目標計算機"--->"MachineX64"
三、DLL依賴問題
1、取消依賴CLR
選擇 “配置屬性”--->"C/C++"--->"公共語言運行時支持" 設置為無
2、設置MFC庫連接方式
“配置屬性”--->"常規"--->"MFC使用"
設置為 “使用標准windows庫“ 或 ”在靜態庫中使用MFC“
3、設置代碼生成運行庫
“配置屬性”--->"C/C++"--->"代碼生成"
設置 ”運行庫” 為 "多線程/MT"
附上CSDN論壇上的一個版主的說明:
1. 確定用的是32位編譯器
2. 確定不使用/clr選項:這將依賴.NET
3. 確定使用/MT靜態鏈接CRT
這樣編譯出來的程序自然可以到處跑。
四、可能出現的情況
1、X64下工程平台和機器目標平台不一致報錯
fatal error LNK1112: 模塊計算機類型“X86”與目標計算機類型“x64”沖突——我的解決方案
五、備注
1、活動解決方案平台,這個和目標程序運行沒什么關系,應該不用設置。
驗證 “活動解決方案平台” 為X64 , 項目平台設置為“WIN32”,在X86 xp下還是能運行,生成程序的目錄在Release下,而不是X64/Release
2、項目平台改變,目標平台也會改變
驗證 “目標計算機” 設置為“MachineX64” , 切換工程平台為WIN32時,查看 “目標計算機” 設置已變成 “MachineX86”
3、X86運行X64編譯出來的程序報錯信息如下: