首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

VC6.0 XP 虛擬機編譯的 MFC 程式無法在 Win10 運行?重新編譯才是正道

     編輯:程式設計疑難解答

提問者在 XP 虛擬機的 VC6.0 開發 MFC 連 MySQL 程式,複製 .exe 到 Win10 主機運行報錯。這是典型的運行時庫與系統 API 不兼容問題。

為什麼會失敗?

  • VC6.0 年代久遠(1998),生成的二進制依賴舊版 MSVCRT.dll、MFC DLL,Win10 可能缺失或版本衝突;
  • 32 位/64 位差異、UAC 權限、MySQL 客戶端庫路徑不同,皆會導致啟動失敗;
  • 虛擬機環境與實體機硬體抽象層(HAL)不同,驅動級依賴更不可移植。

正確做法

  1. 在目標系統(Win10)安裝現代 IDE(VS2019/2022 Community 免費);
  2. 將源碼遷移過去,**原地重新編譯**,自動鏈接當前系統的運行時庫;
  3. 若必須用 VC6.0 維護舊專案,至少在目標系統安裝對應的 VC6 運行時補丁包,但強烈不建議新專案繼續用 VC6。

「舊編譯器產生的程式,拿到新系統跑,純屬碰運氣;重新編譯才是專業態度。」

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved