成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Lua調用C++函數實現教程

移動開發 iOS
Lua調用C++函數實現教是本文要介紹的內容,主要是來學習Lua語言的調用,具體來看本文詳細介紹。

Lua調用C++函數實現教是本文要介紹的內容,主要是來學習Lua語言的調用,具體來看本文詳細介紹。

環境:Visual C++ 2008 Express Edition + Lua 1.5 + SciTE(lua編輯器)

下載 Visual C++ 2008 Express Edition + Lua ,下載后安裝,省略N字。

環境配置:

1、打開Visual C++ 2008(后面簡稱VC2008),新建一個C++ project,File->New Project->Empty Project,在Name欄輸入工程名,然后OK.

2、設置生成DLL文件,右鍵工程名,Properties->Configuration Properties->General->Configuration Type->選擇Dynamic Library(.dll)

3、設置C/C++、Lua。C/C++->General->Additional Include Directories->選擇Lua的安裝路徑下的include,我Lua安裝在"C:\Program Files\Lua",我的完整路徑:"C:\Program Files\Lua\5.1\include"。

4、設置Linker:Linker->General->Additional Library Directories->選擇Lua安裝目錄下的lib目錄就可以了。我的完整路徑:"C:\Program Files\Lua\5.1\lib".

5、設置Input:Input->Additional Dependencies->這里手動輸入"lua5.1.lib"就可以了。點擊確認。

OK,暫時配置就到這里,下面還需要配置一個模塊定義文件。等等再說。

Test Lua調用C++函數

1、選擇Source Files,右鍵Add->New Item->選擇 C++ File(.cpp)->Add->Name欄輸入hello->Add。

2、在hello.cpp文件中輸入下面Code.

  1. //依賴文件  
  2.  
  3. //因為建的是C++ Project,所以這里必須要加extern "C" ,如果不加這個是沒辦法編譯的。   
  4.  
  5. extern "C" {   
  6. #include "lua.h"   
  7. #include "lualib.h"   
  8. #include "lauxlib.h"   
  9. }   
  10. #include <windows.h>   
  11. #include <wincrypt.h>   
  12. //因為建的是C++ Project,所以這里必須要加extern "C"   
  13. extern "C" int hello(lua_State* L){   
  14. printf("------>>  Hi! %s \n",(LPTSTR)lua_tostring(L,1));   
  15. return 0;   
  16. }   
  17.  
  18. //--------注冊函數-----------   
  19. struct luaL_reg lrLibs[] =     
  20. {    
  21.      { "hello", hello },    
  22.      { NULL, NULL }  /* sentinel */    
  23. };   
  24. // 該函數是庫的入口函數,需要在Lua中調用用來注冊庫函數列表    
  25. // 因為Lua是用C語言寫的,所以導出函數需要符合C語言調用規范    
  26. // 返回值:注冊的函數庫,其實為一個table    
  27. extern "C" int luaopen_hello( lua_State* L )    
  28. {    
  29.       //注冊名為hello的函數庫    
  30.      luaL_register( L, "hello", lrLibs );    
  31.      return 1;    
  32. }  

3、建一個模塊定義文件,在環境配置中說到過,這里先不介紹怎么配置。

(1)這個時候要在當前Project下面建立文件,文件后綴為.def的文件。我這里定義的是叫“lua_c.def”的文件。

(2)這個文件很簡單,首先在文件最上面加上 EXPORTS,然后再將你在C++文件中定義的那個入口函數的函數名加進來就可以了。(就是上面的luaopen_hello)。

(3)將模塊定義文件加入到Project,右鍵Resource Files->add->Add Existing Item->選擇新建的lua_c.def文件,Add.

4、將模塊定義文件配置到Project中,上面環境配置沒有說完的,Properties->Configuration Properties->Linker->Input->Module Definition File->輸入上面建的lua_c.def文件,確定。

OK!到這里就基本上配置好了。

編譯Project:

1、右鍵Project->Build,在控制臺可以看到Build的信息。

2、在當前Project\Debug\,就可以找到與工程名相同的 hello.dll(我這里Project Name是hello)文件了,這個文件就可以在Lua中使用了。

建Lua文件測試:

1、打開SciTE編輯器,新建一個文件,在文件中輸入下面的內容:

-- "hello"是模塊的名字,與Project Name相同

  1. require("hello");  

-- 在C++文件中注冊的名字

  1. local f = hello;  

-- 調用C++文件中定義的方法,"Lua"就是參數了。

  1. f.hello("Lua");  

2、保存,取個名字,我這是LuaVC.lua.

3、運行。快捷鍵 F5.這里需要注意下,需要把hello.dll文件拷到Lua能找到的路徑下,我這里放在了與Lua文件一起。

如果都沒有問題的話就可以看到SciTE控制臺輸出

  1. Hi!Lua  

小結:Lua調用C++函數實現教程的內容介紹完了,希望通過本文的學習能對你有所幫助!

責任編輯:zhaolei 來源: iteye
相關推薦

2011-08-25 16:47:53

LuaC++ 證書

2011-08-22 17:13:00

LuaC++函數

2010-01-28 13:35:41

調用C++函數

2013-12-13 16:53:00

Lua腳本語言C++

2010-01-21 11:23:58

C++函數調用

2011-08-23 16:59:16

C++LUA腳本LUA API

2011-08-23 09:50:29

LuaPlusLua 腳本

2010-01-20 14:25:56

函數調用

2023-11-09 23:31:02

C++函數調用

2010-02-03 15:52:55

C++ clock()

2010-02-05 15:59:26

C++函數重載

2011-08-29 16:48:50

Lua配置文件C++

2011-07-20 16:09:08

C++

2023-12-24 12:56:14

C++函數語言

2010-02-01 13:26:58

C++讀取CSV文件

2010-02-04 17:16:33

C++調用python

2020-08-21 13:20:36

C++If ElseLinux

2022-01-14 09:10:56

C++文件Linux

2010-01-20 14:35:55

C++調用

2010-01-18 17:38:54

C++虛函數表
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 九色国产 | 欧美全黄 | 精品国产欧美 | 精品一区二区在线观看 | 国产福利在线 | 一区二区三区四区视频 | 国产高清一区二区三区 | 亚洲精品丝袜日韩 | 日韩欧美在线免费观看视频 | 欧美日韩网站 | 亚洲第一视频 | 国产精品欧美一区二区 | 久久精品视频在线免费观看 | 亚洲国产午夜 | 国产精品免费观看 | 国产超碰人人爽人人做人人爱 | 亚洲一区国产精品 | 欧美日韩国产精品 | 日韩在线视频免费观看 | 国产精品揄拍一区二区 | 久久久xx| 久久久久久国产 | 久久九 | 国产精品不卡视频 | 99九九久久 | 啪啪综合网 | 日韩av在线一区二区三区 | 欧美日韩中文字幕 | 黄色91在线 | 亚洲一区二区三区久久久 | 男人天堂久久久 | 夜夜撸av | 91中文字幕 | 亚洲激情在线观看 | 一级黄色片毛片 | 91传媒在线观看 | 日韩成人在线观看 | 欧美午夜在线 | 国产精品久久久久久久久久久免费看 | 四虎在线观看 | 91精品久久久久久久久 |