一步一步教你用VC純資源dll解決國際化問題

2021-04-20 07:09:34 字數 1295 閱讀 1059

一步一步教你用vc純資源dll解決國際化問題這的確是個老話重談了,因為這裡面確實也沒有什麼可以稱的上技術含量的,只是實現起來有點煩瑣,不過我還是要寫出來,希望剛接觸這方面的同行們不至於走太多的彎路。

由於mfc應用程式也有自己的資源檔案,當你呼叫mfc函式比如 cstring::loadstring 或其它 loadicon 時,mfc應用程式框架首先跟蹤搜尋exe檔案的資源,然後才是dll和mfc的資源,因此在使用純資源dll時候,必須人為先改變資源的搜尋順序,可以通過使用 afxsetresourcehandle 函式來實現,具體實現如下:

else

afxsetresourcehandle(m_hlangdll);

……}下面開始談談具體的實現步驟。

一、建立主工程

步驟:

從專案中移出所有的資源檔案,把resource面板中的所有檔案移出,把fileview面板中的multilanguage.rc,resource.h,以及resource files下的所有檔案移出。(說明:移出的檔案並不是從實際的檔案目錄中刪除掉)

二、建立英文版的dll

步驟:刪除不需要的檔案:把resource面板中的所有檔案移出,把 fileview 面板中的english.rc,resource.h,以及resource files下的所有檔案移出,然後也可以從實際目錄中刪除掉;

複製相關的資源檔案:把multilanguage目錄下的multilanguage.rc,resource.h檔案複製到english工程檔案目錄下,還需要把 multilanguage/res 下的所有檔案複製到english/res目錄下(這樣操作起來簡單,當然你可以根據需要,選擇複製的檔案);

把3步複製的所有檔案新增到專案中去;

把所有的中文的資源名修改為相關的英文資源,同時需要把支援的語言改為「english(u.s.).",把project選單 setting 對話方塊中 resource 標籤的預設文字改為"english(u.s.).」,還需要在resource標籤下刪

除預處理定義中的"_afxdll"。這樣使用者的鏈結庫包含通用的mfc資源;

然後編譯建立動態鏈結庫就ok了;

private:

bool m_bchinese;

hinstance m_hlangdll;

建構函式中初始化:

在initinstance()函式修改資源載入順序:

else

afxsetresourcehandle(m_hlangdll);

……} 別忘了exitinstance()函式釋放掉載入的dll資源

最後編譯執行!

一步一步教你配置vnc

配置 vnc遠端桌面連線 1.在命令列輸入 init 3 進入純字元介面 2.kill 掉所有與 x有關的程序 用命令ps aux grep x 然後kill 程序號1 程序號2 只要找到的程序都 kill 掉 如果不會使用 kill 命令,直接重啟電腦 3.首先檢查 vncserver 是否安裝使...

教你一步一步用OpenGL寫遊戲 前言

這是乙個系列的教程。在這套教程裡,我將會把之前用opengl qt做過的一款遊戲和大家分享,並且從頭到尾一步步分析整個遊戲的實現過程和架構設計。關於寫這些東西的目的,我想大概有三點吧 其一是想把自己寫過的這個遊戲重新梳理一遍,認真重構重構,真正理解其中用到的技術和演算法,更加深入地把握軟體專案開發技...

教你 新手 一步一步開始SEO

如果你從事seo工作已經有段時間了,你可能對如何來優化乙個網頁有種直覺。你可能是同時來做好幾件事,而不是執行一步一步的過程。但是如果你是正在學習seo,或者是試圖去理解seo們是怎麼來做你的網頁的,那就顯得有些難度了,尤其當你第一次接觸這個的時候。這篇文章旨在幫助seo初學者們更多的了解seo的過程...