mfco42d.dll 是 **MFC Debug 版 DLL**(d 代表 Debug)。發布給用戶機器時,**必須使用 Release 版本**,Debug 版 DLL 不允許隨應用分發(許可證限制),且用戶機無 VC++ Debug 運行時。
# 命令行
msbuild MyProject.sln /p:Configuration=Release /t:Clean,Rebuild
# 或 VS 菜單:Build → Clean Solution → Rebuild Solution
Release/ 目錄下生成 .exe,無 mfco42d.dll 依賴(用 dumpbin /dependents 或 Dependency Walker 確認)。mfc140.dll (VS2015-2022) / mfc120.dll (VS2013) 等 **Release 版 MFC DLL**。| 方案 | 優點 | 缺點 |
|---|---|---|
靜態鏈接 MFC (/MT / Use MFC in a Static Library) | 無外部 DLL 依賴、單文件部署、啟動快 | 可執行文件體積增大 ~300KB、無法共享 MFC 狀態 |
| 動態鏈接 + 安裝包含 VC++ 運行時 | 體積小、多程序共享運行時 | 需安裝 VC_redist.x64.exe、版本管理麻煩 |
| 動態鏈接 + 本地複製 DLL (App-Local) | 免安裝運行時、XCopy 部署 | 需手動複製 mfc140.dll 等、佔用磁盤 |
// 項目屬性 → General → Use of MFC: "Use MFC in a Static Library"
// C/C++ → Code Generation → Runtime Library: "Multi-threaded (/MT)"
生成單一 .exe,拷貝即用,最省心。
**見到
xxxd.dll(d=Debug) 直接切 Release 重建**。MFC 發布鐵律:Release 配置 + 靜態鏈接(或攜帶 VC++ 運行時安裝包),杜絕用戶機缺 DLL。