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

            loop_in_codes

            低調做技術__歡迎移步我的獨立博客 codemaro.com 微博 kevinlynx

            修改tolua++代碼支持插入預編譯頭文件

            tolua++自動生成綁定代碼時,不支持插入預編譯頭文件。雖然可以插入直接的C++代碼例如
            ,如$#include xxxx,但插入位置并沒有位于文件頭。對于使用預編譯頭的大型工程而言,
            尤其是某個綁定代碼依賴了工程里其他很多東西,更萬惡的是預編譯頭文件里居然包含很多
            自己寫的代碼時,支持插入預編譯頭文件這個功能很重要。

            說白了,也就是要讓tolua++在生成的代碼文件開頭插入#include "stdafx.h"。

            修改代碼其實很簡單。tolua++分析pkg文件及生成代碼文件其實都是通過lua代碼完成的。
            在src/bin/lua目錄下,或者在源代碼里toluabind.c里(把對應的lua代碼直接以ASCII碼值
            復制了過來)即為這些代碼。

            首先修改package.lua里的classPackage::preamble函數,可以看出該函數會生成一些代碼
            文件頭,模仿著即可寫下如下代碼:

            if flags['I'] then
               output( '#include "..flags['I'] )
            end

            從上下文代碼可以看出flags是個全局變量,保存了命令行參數。

            然后修改tolua.c代碼文件,讓其往lua環境里傳入命令行參數:

            case 'I':setfield(L,t,"I",argv[++i];break;

            本來,這樣修改后基本就可以讓tolua++支持通過命令行指定是否插入預編譯頭:
            tolua++ -o test.cpp -H test.h -I stdafx.h test.pkg

            不過事情并非很順利,通過開啟TOLUA_SCRIPT_RUN宏來讓tolua++通過src/bin/lua下的lua
            代碼來完成功能,結果后來發現basic.lua似乎有問題。無奈之下,只好用winhex之類的工
            具把修改過的package.lua轉換為unsigned char B[]置于toluabind.c里,即可正常處理。

            posted on 2010-02-28 20:58 Kevin Lynx 閱讀(4948) 評論(0)  編輯 收藏 引用 所屬分類: lua

            久久精品aⅴ无码中文字字幕重口| 熟妇人妻久久中文字幕| 国内精品久久久久| 99久久综合狠狠综合久久| 久久久99精品一区二区 | 人妻无码αv中文字幕久久琪琪布 人妻无码久久一区二区三区免费 人妻无码中文久久久久专区 | 国产精品无码久久四虎| 亚洲精品成人久久久| 久久久婷婷五月亚洲97号色| 精品国产青草久久久久福利| 国内精品九九久久精品| 亚洲乱亚洲乱淫久久| 亚洲乱码中文字幕久久孕妇黑人| 亚洲综合婷婷久久| 亚洲国产精品无码久久98| 久久久久久国产精品免费免费| 亚洲精品国产字幕久久不卡 | 色妞色综合久久夜夜| 久久精品国产精品青草app| 久久中文字幕精品| 99久久精品无码一区二区毛片| 国产偷久久久精品专区| 要久久爱在线免费观看| 色综合久久最新中文字幕| 色欲综合久久躁天天躁蜜桃| 亚洲精品午夜国产va久久| 成人精品一区二区久久久| 久久国产精品99精品国产| av色综合久久天堂av色综合在| 久久久艹| 香蕉久久永久视频| 亚洲精品无码久久久久AV麻豆| 久久久久亚洲精品中文字幕 | 久久精品国产91久久综合麻豆自制 | 久久综合九色综合网站| 日本五月天婷久久网站| 国产精品久久久久久五月尺| 久久无码精品一区二区三区| 久久人妻少妇嫩草AV无码蜜桃 | 久久国产精品77777| 国产精品99久久免费观看|