青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

聚星亭

吾笨笨且懶散兮 急須改之而奮進(jìn)
posts - 74, comments - 166, trackbacks - 0, articles - 0
  C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

       AngelScript作為一個(gè)嵌入式的腳本庫(kù)不支持獨(dú)立運(yùn)作(原文: Being an embedded scripting library there isn't much that AngelScript allows the scripts to do by themselves,),       因此,應(yīng)用程序必須先注冊(cè)一個(gè)接口讓腳本與應(yīng)用程序交互(原文:so the first thing the application must do is to register the interface that the script will have to interact with the application.)。該接口可以由函數(shù)、變量、甚至是一個(gè)完整的類(lèi)組成(原文:The interface may consist of functions, variables, and even complete classes.)。

// 創(chuàng)建一個(gè)腳本引擎

asIScriptEngine *engine = asCreateScriptEngine(ANGELSCRIPT_VERSION);

 

// 設(shè)置一個(gè)消息回調(diào)來(lái)接收可讀的錯(cuò)誤信息

// 建議在創(chuàng)建一個(gè)引擎對(duì)象后這樣做一下, 因?yàn)槿绻?cè)失敗,本引擎可以發(fā)送一些有效信息到消息流中

r = engine->SetMessageCallback(asFUNCTION(MessageCallback), 0, asCALL_CDECL); assert( r >= 0 );

 

//由于標(biāo)準(zhǔn)的C++中沒(méi)有明確的字符串類(lèi)型,因此,AngelScript也沒(méi)有內(nèi)置的字符串類(lèi)型.

//故每個(gè)開(kāi)發(fā)人員可以自由注冊(cè)它自己的字符串類(lèi)型

//但是本引擎SDK為注冊(cè)一個(gè)字符串類(lèi)型提供了一個(gè)標(biāo)準(zhǔn)的附加項(xiàng),因此如果你不想注冊(cè),就沒(méi)有必要進(jìn)行注冊(cè)  

RegisterStdString(engine);

 

// 注冊(cè)一個(gè)腳本中的函數(shù)

r = engine->RegisterGlobalFunction("void print(const string &in)", \

                                asFUNCTION(print), asCALL_CDECL); assert( r >= 0 );

 

       配置好引擎之后,下一步便是編譯要執(zhí)行的腳本了(原文:After the engine has been configured, the next step is to compile the scripts that should be executed.)。接下來(lái)是一個(gè)注冊(cè)print函數(shù)將“Hello world”寫(xiě)在標(biāo)準(zhǔn)輸出流中。例如,下面test.as文件中存儲(chǔ)的代碼(原文: The following is our script that will call the registered print function to write Hello world on the standard output stream. Let's say it's stored in the file test.as.:

void main()

{

  print("Hello world\n");

}

 

       下面的代碼是加載腳本文件并編譯(Here's the code for loading the script file and compiling it. ):

// CScriptBuilder類(lèi)是一個(gè)裝在文件的附加物

//如果有必要的話,通過(guò)執(zhí)行一個(gè)預(yù)處理, 然后告訴引擎組建一個(gè)腳本模塊

CScriptBuilder builder;

r = builder.BuildScriptFromFile(engine, "MyModule", "test.as");

if( r < 0 )

{

  // 產(chǎn)生一個(gè)錯(cuò)誤. 把它列在標(biāo)準(zhǔn)輸出流中以通知腳本作者修正腳本錯(cuò)誤

  printf("Please correct the errors in the script and try again.\n");

  return;

}

       最后一步是關(guān)聯(lián)要被調(diào)用的函數(shù),并建立上下文來(lái)執(zhí)行它(原文:The last step is to identify the function that is to be called, and set up a context for executing it. )

 

// 定位到被調(diào)用的函數(shù)

asIScriptModule *mod = engine->GetModule("MyModule");

int funcId = mod->GetFunctionIdByDecl("void main()");

if( funcId < 0 )

{

  // 找不到這個(gè)函數(shù)(The function couldn't be found.)

  // 通知腳本作者在腳本中包含指定的函數(shù).

  printf("The script must have the function 'void main()'. Please add it and try again.\n");

  return;

}

 

// 創(chuàng)建一個(gè)引擎環(huán)境, 配置一下, 然后執(zhí)行

asIScriptContext *ctx = engine->CreateContext();

ctx->Prepare(funcId);

r = ctx->Execute()

if( r != asEXECUTION_FINISHED )

{

  // The execution didn't complete as expected. 確定發(fā)生了什么.

  if( r == asEXECUTION_EXCEPTION )

  {

    // 發(fā)生一個(gè)異常, 讓腳本作者知道發(fā)生了什么,怎樣才可以修正它.

    printf("An exception '%s' occurred. Please correct the code and try again.\n", ctx->GetExceptionString());

  }

}

 

       上面試最基本的異常處理(原文:The exception handling above is very basic.)。如果需要,該應(yīng)用程序也可以獲得關(guān)于行號(hào)、函數(shù)、調(diào)用堆棧信息、以及本地和全局變量(原文:The application may also obtain information about line number, function, call stack, and even values of local and global variables if wanted. )。

       在虛擬機(jī)執(zhí)行完之后,不要忘了清理一下(原文:Don't forget to clean up after you're done with the engine.

// 清理

ctx->Release();

engine->Release();

 

       Helper functions

       print 函數(shù)是對(duì)printf函數(shù)很簡(jiǎn)單封裝(The print function is implemented as a very simple wrapper on the printf function.)。

// 打印腳本字符串到標(biāo)準(zhǔn)輸出流

void print(string &msg)

{

  printf("%s", msg.c_str());

}

另見(jiàn):

       Message callback, Script builder helper, and string object (STL)
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久久精品国产99久久精品芒果| 久久精品日韩| 中文欧美在线视频| 99在线|亚洲一区二区| 亚洲破处大片| 99精品欧美一区| 一区二区福利| 亚洲一区二区av电影| 亚洲淫片在线视频| 午夜久久久久| 老牛影视一区二区三区| 免费观看成人www动漫视频| 欧美韩日精品| 欧美系列亚洲系列| 国产精品一区二区女厕厕| 国产视频欧美| 影音先锋成人资源站| 亚洲精品视频一区| 亚洲一区二区精品在线观看| 午夜精彩视频在线观看不卡| 久久精品夜色噜噜亚洲aⅴ| 久久综合久久综合久久| 亚洲韩国日本中文字幕| 一区二区高清视频在线观看| 香蕉久久久久久久av网站| 久久久噜噜噜| 欧美日韩999| 国产亚洲精品综合一区91| 亚洲电影在线观看| 亚洲美女中出| 性欧美办公室18xxxxhd| 免费日韩一区二区| 一本色道久久| 亚洲四色影视在线观看| 国产精品免费看| 国产亚洲综合精品| 亚洲国产一区二区三区青草影视| 中日韩男男gay无套| 久久精品91| 亚洲国产欧美日韩| 中文亚洲免费| 久久久女女女女999久久| 欧美日韩国语| 国产有码一区二区| 一本色道久久99精品综合| 久久激情网站| 亚洲精品日产精品乱码不卡| 新狼窝色av性久久久久久| 欧美好骚综合网| 国产亚洲激情| 一区二区三区四区国产| 老司机亚洲精品| 亚洲一区二区免费视频| 欧美ab在线视频| 国产免费亚洲高清| 中日韩美女免费视频网站在线观看| 久久久五月婷婷| 99综合电影在线视频| 久久一区二区三区四区| 国产目拍亚洲精品99久久精品| 狠狠久久婷婷| 国产老女人精品毛片久久| 亚洲黄一区二区| 久久精品免费播放| 一区二区三区久久网| 免费亚洲网站| 狠狠色综合色综合网络| 欧美一区二区| 一本色道久久88综合亚洲精品ⅰ| 免费高清在线一区| 国产一区二区精品久久91| 午夜精品久久久久久99热软件| 亚洲精品国精品久久99热一| 久久免费视频网站| 国产欧美日韩精品专区| 亚洲综合国产精品| 99国产一区| 欧美mv日韩mv国产网站| 亚洲国产精品精华液2区45 | 亚洲中字黄色| 欧美日韩一区二区三区在线视频| 最近中文字幕日韩精品| 巨胸喷奶水www久久久免费动漫| 亚洲午夜国产一区99re久久| 欧美日韩在线一区二区三区| 一本色道久久88精品综合| 91久久精品久久国产性色也91| 久久婷婷久久一区二区三区| 永久域名在线精品| 久久性天堂网| 久久精品一区二区三区中文字幕| 国产日韩欧美不卡| 久久精品人人做人人爽| 欧美一区二区三区另类| 国产午夜精品一区二区三区欧美 | 91久久久一线二线三线品牌| 免费成人毛片| 亚洲精品乱码| 亚洲国产欧美一区二区三区同亚洲| 久久亚洲一区| 亚洲国产高潮在线观看| 欧美成人一区二区三区| 久久综合色播五月| 亚洲激情一区| 亚洲人成亚洲人成在线观看图片 | 欧美激情精品久久久久久蜜臀| 亚洲国产精品成人综合色在线婷婷| 欧美高清视频免费观看| 欧美www视频| 夜色激情一区二区| 夜夜夜精品看看| 国产精品女同互慰在线看| 久久精品99无色码中文字幕| 久久精品二区三区| 亚洲国产免费看| 亚洲精品激情| 国产精品草草| 久久久91精品国产一区二区三区| 欧美专区中文字幕| 亚洲国产天堂久久国产91| 亚洲精品在线看| 国产精品麻豆欧美日韩ww | 香蕉久久一区二区不卡无毒影院| 国产一区导航| 欧美激情二区三区| 欧美日韩a区| 久久精品123| 最新国产精品拍自在线播放| 欧美 日韩 国产 一区| 亚洲欧洲另类| 一区二区三区你懂的| 国产午夜精品美女视频明星a级| 欧美 日韩 国产一区二区在线视频 | 欧美一级夜夜爽| 久久久久久一区| 一区二区三区精品在线 | 亚洲在线观看视频| 久久国产欧美日韩精品| 亚洲日本va午夜在线电影 | 国产精品实拍| 蜜桃av综合| 国产精品成人一区二区网站软件| 久久乐国产精品| 欧美精品啪啪| 久久久久久97三级| 欧美激情欧美狂野欧美精品| 欧美中文在线视频| 欧美高清在线一区| 久久精品人人做人人综合| 欧美精品亚洲精品| 久久久xxx| 欧美日韩亚洲高清| 久久夜色精品国产噜噜av| 欧美日韩黄色大片| 欧美v亚洲v综合ⅴ国产v| 国产精品看片你懂得| 亚洲成在人线av| 亚洲色图在线视频| 亚洲第一在线综合在线| 亚洲自拍高清| 亚洲另类一区二区| 久久av老司机精品网站导航 | 亚洲精品视频免费观看| 国产在线拍偷自揄拍精品| 亚洲精品一二区| 在线看国产日韩| 亚洲在线免费| 亚洲少妇最新在线视频| 免费观看成人| 麻豆国产va免费精品高清在线| 国产精品一二| 亚洲精品一区中文| 亚洲人成在线免费观看| 久久久噜久噜久久综合| 久久高清福利视频| 欧美日产一区二区三区在线观看| 免费亚洲电影在线观看| 国产亚洲制服色| 亚洲欧美日韩国产综合精品二区| 一区二区三欧美| 欧美电影免费观看高清完整版| 老司机午夜精品| 国产一区二区黄色| 午夜日韩视频| 欧美亚洲网站| 国产精品久久久久久久9999 | 久久夜色精品| 久热精品视频在线| 韩国一区电影| 久久成人免费网| 久久精品国产2020观看福利| 国产精品分类| 亚洲一级在线观看| 亚洲综合色激情五月| 欧美视频四区| 一区二区三区国产在线| 亚洲视频在线视频| 欧美视频在线免费看| 一二三四社区欧美黄| 亚洲午夜激情|