自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

詳解LUA 5.1編譯及實(shí)例操作

移動(dòng)開發(fā) iOS
因?yàn)樵趘s2005中l(wèi)ua是外來(lái)的,所以要讓vs2005能找到lua的頭文件和庫(kù)文件(lua5.1中只有一個(gè)lua51.lib),具體內(nèi)容來(lái)考哪本文詳解。

LUA 5.1編譯及實(shí)例操作是本文要介紹的內(nèi)容,以前沒(méi)接觸過(guò),并且能找的資料也少之又少, 花了兩天的時(shí)間才搞定..一般的都是在vs2005中開發(fā)(我的就是),以下是關(guān)于vs2005中使用lua。

以下是我在vs2005編譯方法:

1、打開vs命令行工具、   工具->visual studio 2005 command prompt

2、到lua-5.1的目錄也就是etc的上一級(jí)目錄    :cd/d d:\lua-5.1

3、執(zhí)行:etc\luavs.bat(注意:這里是\,不是/)

4、然后lua51.dll ,lua51.lib,lua.exe就生成在src路徑下了~(注意因?yàn)槭莑ua5.1的所以沒(méi)有l(wèi)uac.exe,以前的版本有)

因?yàn)樵趘s2005中l(wèi)ua是外來(lái)的,所以要讓vs2005能找到lua的頭文件和庫(kù)文件(lua5.1中只有一個(gè)lua51.lib),在vs中包含,于是:工具->選項(xiàng)->項(xiàng)目和解決方案->vc++ 目錄  右邊選擇包含文件把src的路徑包含進(jìn)來(lái)(關(guān)于頭文件的)。

還有庫(kù)文件同意的操作,不過(guò)這里就是后來(lái)一直出錯(cuò)的點(diǎn),這里這種方式包含的庫(kù)文件是包含不進(jìn)來(lái)的,后面講到的一種方法可正確包含

頭文件和庫(kù)文件都包含進(jìn)來(lái)后就可以在c++中使用lua了

看一個(gè)實(shí)例如下:

  1. #include <stdio.h> 
  2. #include <iostream> 
  3. extern "C"  
  4. {  
  5.    #include "lua.h"  
  6.    #include "lualib.h"  
  7.    #include "lauxlib.h"  
  8. }//在工具中包含文件的那個(gè)~~  
  9. /* Lua解釋器指針 */  
  10. lua_State * L;  
  11. #pragma comment(lib,"lua51.lib")//包含庫(kù)文件~~在工具里包含不進(jìn)來(lái),上面的包含不進(jìn)來(lái)的處理辦法是:  
  12. //把lua51.dll 拷到項(xiàng)目的dubug目錄下,把lua51.lib拷到項(xiàng)目目錄的項(xiàng)目名的文件夾下  
  13. int main ()  
  14. {  
  15.  /* 初始化Lua */  
  16.  L = lua_open();  
  17.  /* 載入Lua基本庫(kù) */  
  18.  luaL_openlibs(L);  
  19.  /* 運(yùn)行腳本 ,注意路徑*/  
  20.  luaL_dofile(L, "d:\\test.lua");  
  21.  /* 清除Lua */  
  22.  lua_close(L);  
  23.  //printf( "Press enter to exit…" );  
  24.  //getchar();  
  25.  return 0;  

上面是c++的一個(gè)空工程

下面是test.lua的代碼:是一個(gè)石頭剪子布的小的游戲?qū)嵗?/p>

代碼如下:

  1. ---[[  
  2. math.randomseed(os.time()) --[[為隨機(jī)數(shù)產(chǎn)生器生成一個(gè)種子--]]  
  3. user_score = 0 
  4. comp_score = 0  -- 全局變量存分?jǐn)?shù)  
  5. lookup = {};     --輸贏對(duì)照表  
  6. lookup["rock"]={rock = "draw",paper = "lose",scissors ="win"}  
  7. lookup["paper"]={rock = "win",paper = "draw",scissors = "lose"}  
  8. lookup["scissors"]={rock = "lose",paper = "win",scissors = "draw"}  
  9. function GetAiMove()  --Ai的函數(shù)  
  10.   local int_to_string = {"rock","paper","scissors"}  --局部一個(gè)table,對(duì)照用  
  11.   return int_to_string[math.random(3)]  
  12. end  
  13. function EvaluateTheGuess(user_guess,comp_guess)   -- 計(jì)算結(jié)果的函數(shù)  
  14.   if(lookup[user_guess][comp_guess]=="win") then  
  15.      print ("user win the game")  
  16.      --print()  
  17.      user_scoreuser_score=user_score+1         --小錯(cuò)誤 ~已改  
  18.   elseif (lookup[user_guess][comp_guess]=="lose") then  
  19.      print ("user lose the game")  
  20.      --print()  
  21.      comp_scorecomp_score=comp_score+1  
  22.   else  
  23.       print ("draw!")  
  24.       --print()  
  25.   end  
  26. end 

下面開始

  1. print ("game begin:enter q to guit game")  
  2. --print() --換行?  
  3. loop = true 
  4. while loop==true do  
  5.   --print()  
  6.   print("user: "..user_score.." comp: "..comp_score)  
  7.   print()  
  8.   print("p--布  r--拳頭  s--減")  
  9.   print("請(qǐng)輸入:")  
  10.   --io.open()  
  11.   user_guess =io.stdin:read '*l'    --出錯(cuò)的地方,這里是l不是1  
  12.   --user_guess = "r" 
  13.   print()  
  14.   local letter_to_string = {r="rock",s="scissors",p="paper"}    --亦是局部的一個(gè)table 對(duì)照用的  
  15.   if(user_guess == "q") then  
  16.      loop = false 
  17.   elseif(user_guess == "r") or (user_guess == "s") or(user_guess =="p")  then  
  18.      comp_guess=GetAiMove()  
  19.      EvaluateTheGuess(letter_to_string[user_guess],comp_guess)  
  20.   else  
  21.      print ("invalid input,try again")  
  22.   end  
  23. end  
  24. --]] 

小結(jié):關(guān)于詳解LUA 5.1編譯及實(shí)例操作的內(nèi)容介紹完了,希望通過(guò)本文的學(xué)習(xí)能對(duì)你有所幫助!

責(zé)任編輯:zhaolei 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-08-25 15:21:02

Lua字符串

2009-08-20 11:01:51

C#操作內(nèi)存

2011-08-24 15:28:02

Lua編譯器解釋器

2012-05-08 11:01:45

linux守護(hù)進(jìn)程

2013-01-15 15:18:46

Linux守護(hù)進(jìn)程

2009-09-07 05:50:59

C# Timer用法

2011-06-29 11:06:12

Qt Qvfb

2009-08-18 17:05:08

C#操作xml文件

2011-07-05 14:29:44

Ubuntu QT Mysql

2011-08-23 17:06:03

2011-07-06 16:25:10

iPhone 程序 調(diào)用

2011-07-04 15:13:31

QT MPlayer 移植

2011-07-19 13:20:22

Xcode

2019-09-12 08:32:40

Linuxsed命令語(yǔ)法

2009-12-24 09:16:11

C#泛型

2011-08-23 16:48:41

Lua 5.1API 函數(shù)

2011-07-26 18:11:56

iPhone Sqlite 數(shù)據(jù)庫(kù)

2009-08-26 14:03:26

C#打印原理

2010-01-13 10:14:45

2017-06-14 22:11:57

數(shù)據(jù)庫(kù)MySQL死鎖
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)