• <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++

            為中華之崛起而崛起!
            兼聽(tīng)則明,偏聽(tīng)則暗。

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

             

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

             

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

             

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

            STRINGTABLE [DISCARDABLE]

            BEGIN

                   字符串ID1    字符串1”

                   字符串ID2    字符串2”

                  

            END

             

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

             

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

                   invoke LoadString, hInstance, 字符串ID, addr 緩沖區(qū), sizeof 緩沖區(qū)

             

            為了防止溢出,最后一個(gè)參數(shù)指定緩沖區(qū)的長(zhǎng)度。

            如果要在單個(gè)可執(zhí)行文件中實(shí)現(xiàn)多語(yǔ)種,那么可以在字符串表中定義不同語(yǔ)言的字符串。同一語(yǔ)種的字符串按規(guī)律排列,如下列中文的以1000開(kāi)頭,英文的以2000開(kāi)頭:

            stringtable

            {

                   1001       文件未找到!

                   1002       無(wú)法打開(kāi)文件!

                  

                   2001       “File not found!”

                   2002       “Can not open file”

                  

            }

             

            在程序中使用的時(shí)候,先確定一種語(yǔ)言并預(yù)先設(shè)置在dwLanguage變量中,使用中文時(shí)將dwLanguage設(shè)置為1000,使用英文時(shí)設(shè)置為2000,再寫(xiě)一個(gè)讀取不同版本字符串的子程序_GetString,這樣調(diào)用_GetString子程序后就不用考慮版本問(wèn)題了:

            _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 閱讀(1126) 評(píng)論(0)  編輯 收藏 引用 所屬分類: Win32匯編程語(yǔ)言序設(shè)計(jì)

            導(dǎo)航

            <2010年10月>
            262728293012
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            統(tǒng)計(jì)

            留言簿(6)

            隨筆分類(109)

            隨筆檔案(105)

            Blogers

            Game

            Life

            NodeJs

            Python

            Useful Webs

            大牛

            搜索

            積分與排名

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            国产色综合久久无码有码| 激情五月综合综合久久69| 亚洲国产精品综合久久网络| 一本色综合网久久| 亚洲va国产va天堂va久久| 久久97久久97精品免视看| 久久久免费观成人影院| 99国产精品久久久久久久成人热| 久久99热这里只频精品6| 国产高潮国产高潮久久久91 | 精品国产乱码久久久久久呢| 久久99国产精品二区不卡| 精品久久久久久国产| 精品久久久久久中文字幕人妻最新| 香蕉99久久国产综合精品宅男自| 久久久九九有精品国产| 精品久久久无码人妻中文字幕豆芽| 99热都是精品久久久久久| 亚洲国产精品久久电影欧美| 欧美激情精品久久久久久久九九九| 亚洲AV无码久久精品色欲| 青青热久久国产久精品| 91精品国产高清久久久久久io| 婷婷久久五月天| 欧美日韩精品久久久免费观看| 久久久久久毛片免费播放| 欧美熟妇另类久久久久久不卡| 亚洲AV日韩AV天堂久久| 天天影视色香欲综合久久| 日本道色综合久久影院| 久久99热只有频精品8| 一本久道久久综合狠狠爱| 久久久久亚洲精品日久生情| 久久久久国产一级毛片高清板| 色综合久久中文字幕综合网| 国产香蕉97碰碰久久人人| 91亚洲国产成人久久精品| 性做久久久久久免费观看| 久久狠狠一本精品综合网| 99久久国产亚洲高清观看2024 | 国内精品免费久久影院|