1. 程式人生 > >C++ 實現多語言程式開發研究與Xtreme ToolkitPro的使用(一)

C++ 實現多語言程式開發研究與Xtreme ToolkitPro的使用(一)

        實現 多語言程式的思路比較簡單清楚,主要是通過建立不同語言的資原始檔即可,網上的帖子也挺多,不過個人感覺比較雜,經過研究,總結得出自己的開發心得。

在本次學習中,還用到了Xtreme ToolkitPro介面庫,可以一起綜合學習。

       一、首先要建立多語言資源的DLL檔案:

      步驟:

      1、使用VS2008建立多語言示例程式MultiLanguageDemo,程式用到的是多文件檢視結構;

      2、建立後在解決方案目錄建立資料夾Translations,用來建立多語言資源工程, 當然,你也可以在其他地方建立;

     3、在資料夾Translations下建立解決方案,並建立新的語言專案,比如建立英語資源為ResourceEn過程如下:


        這裡本人選擇的是Win32專案,主要是建立空的DLL專案,當然,使用MFC DLL專案也是可以,只是生成的專案檔案比較多,後面還要刪除,所以沒必要。


       點選確定開始進入建立嚮導後按下一步後,出現這個專案型別,這裡關鍵選擇的是DLL和空專案,點選完成即可。

    4、接下來是關鍵:

  • MultiLanguageDemo工程目錄下的res資料夾和MultiLanguageDemo.rc拷貝到ResourceEn工程目錄下,並將MultiLanguageDemo.rc重新命名為ResourceEn.rc;
  • 修改ResourceEn.rc引入的標頭檔案“resource.h
    ”:
  •     
  • 在“資源檢視”中修改rc的語言資訊:


  • 修改確定之後在解決方案檢視中添加了資原始檔,還有“resource.h”檔案,把這個刪除,直接在.rc檔案中按之前那樣引入即可:


  •  繼續修改ResourceEn.rc原始碼如下:

  • 這裡定義了資源的語言,因為VS2008預設產生的是英語,這裡並不需要修改,在建立其他語言的時候需要做相應的修改,如簡體中文:
  • 設定專案Release屬性:

  • 確定後編譯成功後會生成ResourceEn.dll檔案,至此,資源DLL檔案編譯完成。
      好奇一下,這樣生成的DLL是怎麼樣的,Xtreme ToolkitPro提供了很好的工具。     在Xtreme ToolkitPro原始碼中,主要是兩個關於多語言的例子:ScribbleMultiLang(Xtreme ToolkitPro v15.2.1\Samples\CommandBars\ScribbleMultiLang\)和MultiLanguage(Xtreme ToolkitPro v15.2.1\Samples\ToolkitPro\MultiLanguage)可以供我們學習。

      在ScribbleMultiLang中,發現一個名為BuildXML.bat的檔案,打開發現原來是用來呼叫XMLResource.exe這個工具將DLL轉為XML,這樣,隨便修改下路徑就可以將剛剛產生的ResourceEn.dll轉為ResourceEn.xml,開啟之後發現ResourceEn.xml內容如下:
      不同的語言資源只是編碼方式和ID不一樣,使用的資源是一樣的,這樣MultiLanguageDemo程式就可以根據不同的情況呼叫不同的DLL,從而實現了多語言的切換。至於具體怎麼使用,可以參看剛剛提到的Xtreme ToolkitPro多語言示例程式。