• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            luqingfei@C++

            為中華之崛起而崛起!
            兼聽則明,偏聽則暗。

            Win32匯編--使用資源--字符串資源

             

            Win32匯編--使用資源--字符串資源

             

            程序中用到的字符串常常定義在.const字段中,但Windows也提供了另外一種使用字符串常量的方法,那就是在資源中定義。雖然在資源中定義字符串使用起來比直接在.const段中定義要復雜一點,但它帶來的好處是便于開發不同語言的版本,比如,要推出其他語種的版本只需要修改資源中的字符串表就可以了,即使語言轉換的工作是由第三方通過修改可執行文件來做的(如編程受好者常常做的漢化工作),修改資源也遠比修改代碼來得快捷和安全。

             

            在資源腳本中定義字符串的語法是:

            STRINGTABLE [DISCARDABLE]

            BEGIN

                   字符串ID1    字符串1”

                   字符串ID2    字符串2”

                  

            END

             

            全部字符串組成一個字符串表,和其他資源定義不同,由于整個資源文件中只能定義一個字符串表,所以字符串表沒有資源ID,但是表中的不同字符串分別有一個字符串ID

             

            在程序中使用字符串資源也很簡單,用LoadString把字符串裝入到緩沖區中去就可以用了:

                   invoke LoadString, hInstance, 字符串ID, addr 緩沖區, sizeof 緩沖區

             

            為了防止溢出,最后一個參數指定緩沖區的長度。

            如果要在單個可執行文件中實現多語種,那么可以在字符串表中定義不同語言的字符串。同一語種的字符串按規律排列,如下列中文的以1000開頭,英文的以2000開頭:

            stringtable

            {

                   1001       文件未找到!

                   1002       無法打開文件!

                  

                   2001       “File not found!”

                   2002       “Can not open file”

                  

            }

             

            在程序中使用的時候,先確定一種語言并預先設置在dwLanguage變量中,使用中文時將dwLanguage設置為1000,使用英文時設置為2000,再寫一個讀取不同版本字符串的子程序_GetString,這樣調用_GetString子程序后就不用考慮版本問題了:

            _GetString      proc        _dwID, _lpBuffer, _dwSize

                                 pushad

                                 mov        eax, _dwID

                                 invoke     LoadString, hInstance, eax, _lpBuffer, _dwSize

                                 popad

                                 ret

            _GetString      endp

             

             

             

            posted on 2010-09-20 10:12 luqingfei 閱讀(1112) 評論(0)  編輯 收藏 引用 所屬分類: Win32匯編程語言序設計

            導航

            <2010年9月>
            2930311234
            567891011
            12131415161718
            19202122232425
            262728293012
            3456789

            統計

            留言簿(6)

            隨筆分類(109)

            隨筆檔案(105)

            Blogers

            Game

            Life

            NodeJs

            Python

            Useful Webs

            大牛

            搜索

            積分與排名

            最新評論

            閱讀排行榜

            評論排行榜

            久久A级毛片免费观看| 亚洲中文字幕无码久久2017| 综合久久国产九一剧情麻豆| 精产国品久久一二三产区区别| 亚洲女久久久噜噜噜熟女| 久久最近最新中文字幕大全| 久久国产乱子伦精品免费午夜| 亚洲国产成人久久精品99| 国产成人久久精品激情| 无码任你躁久久久久久| 伊人久久综在合线亚洲2019| 天天躁日日躁狠狠久久| 欧美777精品久久久久网| 亚洲伊人久久成综合人影院 | 日本久久久精品中文字幕| 一本久久综合亚洲鲁鲁五月天| 久久ZYZ资源站无码中文动漫| 精品综合久久久久久88小说 | 亚洲午夜久久久久久噜噜噜| 欧美一区二区精品久久| 97久久国产综合精品女不卡| 久久AAAA片一区二区| 久久免费精品视频| 亚洲精品美女久久777777| 深夜久久AAAAA级毛片免费看| 国产韩国精品一区二区三区久久| 国产成人久久精品一区二区三区| 亚洲欧美日韩精品久久亚洲区 | 久久精品国产亚洲av高清漫画| 久久天天躁狠狠躁夜夜av浪潮| 亚洲国产一成久久精品国产成人综合 | 久久久久久国产精品免费免费| 97久久精品无码一区二区| 亚洲AV日韩AV天堂久久| 亚洲午夜无码AV毛片久久| 欧美日韩精品久久久免费观看| 99久久精品免费观看国产| 久久精品国产91久久综合麻豆自制 | 亚洲国产精品无码久久久久久曰| 国产精品99久久精品爆乳| 欧美久久一区二区三区|