前段時間筆者因為做一個程序,客戶要求要有中英文版本,開始以為要做二個工程,只是資源文件不同,但是發現這樣一個工程更新另外一個也要更新,實在是很麻煩 ,後來經過網上查找資料與自己親身實驗,發現其實只要在一個工程中就可以實現。但是這個工程中要有兩個資源文件,當編譯不同版本時,程序可以自動鏈接不同資源文件 。下面把具體的方法寫出來。供大家參考一下。
第一步、創建中英文版本資源文件
我們先創建第一個中文版本工程,假設工程名稱為 Example,在向導第一步的“What language would you like you resource in” 選擇中文 (如下圖),其它使用缺省值。
然後在工程中把 Example.rc 刪除,這裡雖然刪除了文件,但實際上在工程文件目錄文件還是存在的。進入工程目錄下把資源文件名改成Example_Ch.rc,再在 VC 編譯器中加入 Example_Ch.rc 文件 ,關閉工程。
然後再創建一個同名的英文版本工程。也就是在選擇資源語言時選擇英語(可以保存在不同的目錄下)
創建完後,把英文版本目錄下的 Example.rc 文件拷貝到中文工程的目錄下,其實我們就只是要這個資源文件。並把名稱改為 Example_En.rc。
第二步、在工程中設置版本信息
打開中文件工程,把英文資源文件添加進工程,在添加時會有提示出現,不要理會,按確認就行。
選擇菜單 Build->Configurations,增加一個工程配置,在Configuration中輸入 Debug English 在 Copy Setting from 中選擇 Debug 就可以(見下圖),使用相同的方法,再增加一個 Debug Chinese 配置,並把原來的 Debug 刪除。
第三步、設置工程信息
選擇菜單 Project->Settings,在左邊的 Setting For 中選擇 Debug Chinese 在 Generatl 屬性頁的 Intermediate files 中輸入 Debug Chinese,在 Output files 中輸入 Chinese。在 Resource 屬性頁的 Resource file name 中輸入 Debug Chinese/Example_Ch.res,(見下圖)其它缺省就行。
用同樣的方法在來設置英文版本信息。在左邊的 Setting For 中選擇 Debug Enghlis 在 Generatl 屬性頁的 Intermediate files 中輸入 Debug Enghlis,在 Output files 中輸入 Enghlis。在 Resource 屬性頁的 Resource file name中輸入 Debug English/Example_En.res,其它缺省就行。
本程序在 WIN2000+VC6。0環境下通過。
第四步、修改 DSP 文件,用記事本打開工程下的 Example。dsp 文件
找到如下行:
SOURCE=.\Example_ch.rc
# End Source File
# Begin Source File
SOURCE=.\Example_en.rc
# PROP Exclude_From_Build 1
# End Source File
# Begin Source File
在SOURCE=.\Example_ch.rc行後面加入下面代碼
SOURCE=.\Example_ch.rc
!IF "$(CFG)" == "Example - Win32 Debug English"
# PROP Exclude_From_Build 1
!ELSEIF "$(CFG)" == "Example - Win32 Debug Chinese"
!ENDIF
在SOURCE=.\Example_en.rc行後面加入下面代碼:
!IF "$(CFG)" == "Example - Win32 Debug English"
!ELSEIF "$(CFG)" == "Example - Win32 Debug Chinese"
第五步、現在打開工程,按照不同的要求編譯不同版本就行了,比如這個時候我們要英文版本
在編譯時選擇 Builder->Set Active configuration 中選擇 Win32 Debug English 即可,如果要中文版本 , 在編譯時選擇 Builder->Set Active configuration 中選擇 Win32 Debug Chinese 即可。
結論
如果以後要添加資源,只要在 Resourch。h 文件中定義資源號,然後在中英文資源文件中添加相應的資源串就行,當然這個時候不能直接在工作區的 Resourc 中添加 ,而要用記事本等工具打開資源文件再添加喲。
本程序在Win2000,VC++6.0英文版本下編譯通過。
作者信息:
朱勤武
聯絡電話:057783122865
電子信箱:qingwuzhu@163。net
通訊地址:廣東省深圳市福田區上梅新村 159 棟 703
郵編:518049
本文配套源碼