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

            低調(diào)做技術(shù)__歡迎移步我的獨(dú)立博客 codemaro.com 微博 kevinlynx

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

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

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

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

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

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

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

            然后修改tolua.c代碼文件,讓其往lua環(huán)境里傳入命令行參數(shù):

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

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

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

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

            久久婷婷国产麻豆91天堂| 久久免费大片| 久久综合给合久久狠狠狠97色 | 无码伊人66久久大杳蕉网站谷歌 | 精品久久久久久无码人妻热| 国产亚洲色婷婷久久99精品91| 久久天天躁狠狠躁夜夜2020老熟妇| 亚洲精品乱码久久久久久蜜桃| 欧美精品久久久久久久自慰| 久久精品国产精品亚洲下载| 一本色道久久88—综合亚洲精品| 久久精品国产秦先生| 国产精品99久久久久久宅男小说| 国产亚洲色婷婷久久99精品| 伊人 久久 精品| 国产精品伦理久久久久久| 久久无码人妻一区二区三区午夜| 99久久综合国产精品二区| 久久亚洲中文字幕精品有坂深雪| 欧美国产精品久久高清| 亚洲国产精品久久久久| 韩国免费A级毛片久久| 中文精品久久久久人妻不卡| 亚洲AⅤ优女AV综合久久久| 国产精品亚洲美女久久久| 国内精品久久久久| A狠狠久久蜜臀婷色中文网| 五月丁香综合激情六月久久| 久久99热这里只有精品国产| 亚洲午夜福利精品久久| 久久久久九九精品影院| 久久狠狠一本精品综合网| 伊人色综合久久天天| 欧美久久精品一级c片片| 久久精品国产秦先生| 国产99久久久久久免费看| 久久久久久综合一区中文字幕| 97久久超碰成人精品网站| 国产日产久久高清欧美一区| 国产精品久久久久久久久免费 | 久久精品国产91久久综合麻豆自制 |