首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> 關於VC++

VC++ 專案多語言資源建置指南:中英文雙版本實作

     編輯:關於VC++

資源複製兩種方法

方法一:資源編輯器視覺化操作

  1. 開啟資源視圖,右鍵專案資源 → Insert Copy。
  2. 在語言清單選擇 English (U.S.) (或其他目標語言)。
  3. 系統自動建立對應語言資源節點(對話框、字串表、選單等)。

方法二:直接編輯 .rc 檔案

  1. 用文字編輯器開啟 Project.rc。
  2. 複製整個資源區塊,修改 LANGUAGE 陳述式:

// 原始繁體中文區塊
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
// ... 資源定義 ...

// 新增英文區塊
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
// ... 翻譯後的資源定義 ...

專案建置設定

  1. 專案屬性 → Resources 標籤。
  2. Language:選擇目標建置語言(如 English (United States))。
  3. Preprocessor definitions 加入:

_AFXDLL, AFX_TARG_ENU, AFX_RESOURCE_DLL
  • AFX_TARG_ENU:指定英文資源 DLL 命名慣例 (MFC42ENU.dll 等)。
  • AFX_RESOURCE_DLL:啟用衛星資源 DLL 載入機制。

建置與切換語言

  • 切換建置語言時,務必執行 Rebuild All,確保資源正確編譯連結。
  • 輸出目錄將產生對應語言的資源 DLL (如 MyAppENU.dll)。
  • 執行時系統依據使用者預設 UI 語言自動載入對應資源 DLL。

進階:單一 EXE 多語言動態切換

若需不重啟切換語言,需實作:

  1. 將所有語言資源編譯進同一 EXE (移除 AFX_RESOURCE_DLL),使用不同資源 ID 區段。
  2. 運行時呼叫 AfxSetResourceHandle(hInstResourceDLL) 切換模組句柄。
  3. 重新建立視窗/對話框以套用新資源。

總結

標準 MFC 衛星 DLL 方式:資源複製 → 專案語言設定 → 定義巨集 → Rebuild All。適合安裝部署時依系統語言自動載入對應資源 DLL,維護成本低、符合 Windows 國際化規範。

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