锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
鍦ㄣ婃暟鎹?span lang="EN-US">/閰嶇疆 鐨勫瓨鍌ㄦ柟寮?span lang="EN-US"> Json綃?浠?span lang="EN-US">JsonCpp搴撲嬌鐢ㄤ負渚嬨嬨婃暟鎹?span lang="EN-US">/閰嶇疆 鐨勫瓨鍌ㄦ柟寮?span lang="EN-US"> Json綃?浠?span lang="EN-US">Cocos2D For Iphone+TouchJson涓轟緥 銆嬩腑鎴戞葷粨浜嗕竴涓嬫庝箞浣跨敤Json浣滀負閰嶇疆錛屼絾鏄紝鍏跺疄Json铏界劧璇硶鏍煎紡綆鍗曪紝鍚屾椂瑙f瀽搴撶殑浣跨敤涔熼潪甯哥畝鍗曪紝浣嗘槸錛屽洜涓鴻繖縐嶇畝鍗曟э紝緙哄皯鏈夌殑鏃跺欑殑紜潪甯擱渶瑕佺殑鍔熻兘銆傛瘮濡傞厤緗枃浠朵腑瀵瑰彟涓琛岄厤緗殑寮曠敤錛屾瘮濡傞厤緗鐨勭戶鎵跨瓑錛岃繖浜涘彲浠ヤ嬌鐢?span lang="EN-US">XML鏉ヨВ鍐籌紝鍙﹀錛屾湁鐨勬椂鍊欒繕浼氶渶瑕佸湪閰嶇疆鏂囦歡涓繘琛岀畝鍗曠殑榪愮畻錛屾瘮濡傛垜灝卞父甯鎬細鏈夋兂灝嗘煇涓浘鐗囩緝鏀懼埌鐩墠鍒嗚鯨鐜囩殑鍑犲垎涔嬪嚑榪欐牱鐨勯渶姹傦紝姝ゆ椂錛岀敤涓涓畬鏁寸殑鍙互榪涜榪愮畻鐨勮璦鏉ュ仛閰嶇疆鐨勮鎯戝疄鍦ㄥお澶т簡銆傘傘傘傘傘?span lang="EN-US">
Lua灝辨槸涓烘鑰岀敓鐨勩傘傘傘傘傘傝櫧鐒剁幇鍦?span lang="EN-US">Lua鐨勫姛鑳藉凡緇忚繙榪滀笉姝㈣繖鏍蜂簡錛屼絾鏄渶鍒濊璁?span lang="EN-US">Lua鐨勭洰鐨勫氨鏄竴涓畝鍗曠殑閰嶇疆璇█銆傝Lua鐨勫巻鍙?銆傝櫧鐒跺叾瀹炵敤Python浣滀負閰嶇疆涔熷畬鍏ㄥ彲琛岋紝浣嗘槸Lua鏈夌潃閫熷害蹇殑浼樼偣錛岃屼笖錛?span lang="EN-US">Lua瀹炲湪姣?span lang="EN-US">Python灝忓お澶氫簡錛屽緢閫傚悎宓屽叆鍒扮▼搴忎腑鍘匯?span lang="EN-US">
瀵逛簬浣跨敤Lua浣滀負閰嶇疆錛屼簨瀹炰笂灝辯浉褰撲簬鍦?span lang="EN-US">C++涓祵鍏?span lang="EN-US">Lua錛屽彧涓嶈繃涓嶇敤鍏惰剼鏈璦鐨勪竴浜涘鏉傜壒鎬э紝浠呬粎灝嗗叾浣滀負涓涓厤緗枃浠舵潵鐪嬨?span lang="EN-US">
榪欓噷榪樻槸浠ュ師鏉ャ婃暟鎹?span lang="EN-US">/閰嶇疆 鐨勫瓨鍌ㄦ柟寮?span lang="EN-US"> Json綃?浠?span lang="EN-US">JsonCpp搴撲嬌鐢ㄤ負渚嬨嬫枃涓紑濮嬬殑SDL宸ョ▼浣滀負渚嬪瓙銆?span lang="EN-US">
棣栧厛鎼緩鍙互鍐呭祵浣跨敤Lua鐨?span lang="EN-US">C++緙栬瘧鐜錛屼笅杞戒竴涓?span lang="EN-US">luabinaries 鏄畝鍗曠殑鍔炴硶錛岀幇鍦ㄦ垜浣跨敤鐨勬槸lua5_1_4_Win32_dll8_lib.zip 銆傝繖閲屾垜鐢氳嚦涓嶉渶瑕佷竴涓彲浠ヨ繍琛岀殑Lua浜や簰鐜銆傘傘傘傘?span lang="EN-US">
綆鍗曠ず渚?span lang="EN-US">
棣栧厛寤虹珛涓涓畝鍗曠殑Lua鏂囦歡,鍛藉悕涓?span lang="EN-US">picture.lua
name="dragon.png"
rotation=180
铏界劧鍙湁綆鍗曠殑涓よ錛屼篃鏄釜鍚堟硶鐨?span lang="EN-US">Lua紼嬪簭銆?span lang="EN-US">
鐒跺悗鍦?span lang="EN-US">C++紼嬪簭涓鍙栧嚭鏉ワ紝榪欎釜榪囩▼瀹為檯涓婃槸浣跨敤浜?span lang="EN-US">Lua鐨?span lang="EN-US">C API錛屽叿浣撶殑Lua鐨?span lang="EN-US">C API榪欓噷灝變笉璇︾粏璁茶В浜嗭紝閭f瘮杈冨鏉傦紝鍙互鍙傝冦?span lang="EN-US">Programming in Lua銆嬶紝涓枃鐗堜篃宸茬粡鏈変簡銆傝繖閲屼粎浠呬綔涓轟竴涓緥瀛愭彁渚涘弬鑰冨惂銆?span lang="EN-US">
鐜板湪鍙互寮濮嬪畬鎴?span lang="EN-US">C++鐨勭▼搴忎簡錛?span lang="EN-US">
棣栧厛錛屽寘鍚繀瑕佺殑澶存枃浠訛細
extern "C" {
#include "lua/lua.h"
#include "lua/lauxlib.h"
#include "lua/lualib.h"
}
鍥犱負lua鐨勫ご鏂囦歡瀹屽叏鏄彧鑰冭檻C璇█鐨勬儏鍐碉紝鎵浠ュ湪C++涓嬌鐢ㄧ殑鏃跺欓渶瑕佽嚜宸辨坊鍔?span lang="EN-US">extern "C"銆傝繖鏄吀鍨嬬殑瀵?span lang="EN-US">C++涓嶅睉鐨勬佸害錛屽洜涓虹幇鍦ㄥぇ閮ㄥ垎鐨勭函C璇█鍐欑殑搴擄紝閮戒細寰堣嚜鐒剁殑閫氳繃瀹忓垽鏂潵鑷姩浣跨敤extern "C"璇彞銆?span lang="EN-US">
鐒跺悗錛?span lang="EN-US">
using namespace std;
struct PictureInfo {
string name;
float rotation;
}gPictureInfo;
void PictureInit() {
lua_State *L = luaL_newstate();
if ( luaL_dofile(L, "picture.lua" ) != 0 ) {
printf("Error happen." );
// handle the error.
exit(1 );
}
lua_getglobal(L, "name" );
assert(lua_isstring(L, -1 ) == 1 );
gPictureInfo.name = lua_tostring(L, -1 );
lua_getglobal(L, "rotation" );
gPictureInfo.rotation = (float )lua_tonumber(L, -1 );
lua_close(L);
}
榪欓噷鎴戜滑浣跨敤鐨勬墍鏈夊彉閲忓叏閮ㄩ兘鏄?span lang="EN-US">global鐨勫彉閲忥紝鎵浠ヨ皟鐢ㄨ搗鏉ラ潪甯告柟渚褲備笂闈㈢殑涓昏鍐呭灝辨槸瀵?span lang="EN-US">Lua C API鐨勪嬌鐢紝鐢變簬鍏舵湰韜緝涓哄鏉傦紝榪欓噷涓涓嬩篃璁蹭笉娓呮銆?span lang="EN-US">
鍩烘湰嫻佺▼鏄垱寤烘柊鐨?span lang="EN-US">Lua state,鐒跺悗鐢?span lang="EN-US">luaL_dofile 鎵ц鎴戜滑闇瑕佺殑閰嶇疆鏂囦歡錛岀劧鍚庤皟鐢?span lang="EN-US">lua_getglobal 鍔犻傚綋鐨勮漿鎹㈡潵鑾峰彇鎴戜滑闇瑕佺殑閰嶇疆鍊箋傝繖閲岀殑渚嬪瓙鏄竴涓瓧絎︿覆鍜屼竴涓誕鐐規暟銆?span lang="EN-US">
鍏蜂綋鏄劇ず鐨勬晥鏋滃拰鍏朵粬浠g爜鍙傝冦婃暟鎹?span lang="EN-US">/閰嶇疆 鐨勫瓨鍌ㄦ柟寮?span lang="EN-US"> Json綃?浠?span lang="EN-US">JsonCpp搴撲嬌鐢ㄤ負渚嬨嬪氨濂戒簡錛岃繖閲屼笉閲嶅鎻忚堪浜嗐?span lang="EN-US">
鏁扮粍
鍦?span lang="EN-US">Lua涓暟緇勪篃閫氳繃table鐨勫艦寮忔潵琛ㄧず錛岃繖閲屾垜浠呬粎浠嬬粛鎬庝箞浠?span lang="EN-US">lua鏂囦歡涓幏鍙栭厤緗紝鍏蜂綋鐨勬樉紺虹瓑涓滆タ涔熶笉鍐嶇瘡榪頒簡銆?span lang="EN-US">
榪欓噷錛屾垜浠緩绔嬩竴涓寘鍚暟緇勭殑lua鏂囦歡浣滀負閰嶇疆錛?span lang="EN-US">
data = {
{ name="dragon.png" , rotation=180 } ,
{ name="dragon.png" , rotation=0 }
}
涓嬮潰鐪嬫庝箞灝嗛厤緗鍙栧嚭鏉ワ細
using namespace std;
struct PictureInfo {
string name;
float rotation;
};
vector gPictureInfoVec;
void PictureInit() {
lua_State *L = luaL_newstate();
if ( luaL_dofile(L, "picture.lua" ) != 0 ) {
printf("Error happen." );
// handle the error.
exit(1 );
}
// get the table
lua_getglobal(L, "data" );
assert(lua_istable(L, -1 ) == 1 );
/* table is in the stack at index 't' */
lua_pushnil(L); /* first key */
while (lua_next(L, -2 ) != 0 ) {
PictureInfo info;
/* 'key' (at index -2) and 'value' (at index -1) */
// push the key to stack for getting the value
lua_pushstring(L, "name" );
// now the table is in the -2 and key in the top(-1)
lua_gettable(L, -2 );
assert(lua_isstring(L, -1 ));
info.name = lua_tostring(L, -1 );
lua_pop(L, 1 );
// push the key to stack for getting the value
lua_pushstring(L, "rotation" );
// now the table is in the -2 and key in the top(-1)
lua_gettable(L, -2 );
assert(lua_isnumber(L, -1 ));
info.rotation = lua_tonumber(L, -1 );
gPictureInfoVec.push_back(info);
/* removes the key we pushed and the 'value' of the global table ; keeps 'key' for next iteration */
lua_pop(L, 2 );
}
lua_close(L);
}
浠g爜涓殑娉ㄩ噴瑙i噴鐨勫凡緇忓璇︾粏浜嗭紝浣嗘槸鍥犱負Lua 鐨?span lang="EN-US">API鐨勭‘涓嶆槸澶鏄撶悊瑙o紝榪欓噷涔熸棤娉曚竴涓嬭娓呮錛屾墍浠ヨ繕鏄厛浜嗚ВLua 鐨?span lang="EN-US"> API涓哄ソ錛屽叿浣撶殑API鐨勬剰涔夊彲浠ュ弬鑰冨弬鑰冩墜鍐屻?span lang="EN-US">
涓婇潰浠呬粎浣跨敤浜?span lang="EN-US">Lua API閬嶅巻鏁扮粍浠ュ強浠?span lang="EN-US">table涓幏鍙栧厓绱犵殑鏂規硶銆?span lang="EN-US">
鍋囧浠呬粎鍙湁涓婇潰榪欎簺錛屾槸鐪嬩笉鍑虹敤lua浣滀負閰嶇疆鐨勫ソ澶勭殑錛岀敤lua鍋氶厤緗殑濂藉鍦ㄤ簬鍙互鍒╃敤lua鐨勭壒鎬у疄鐜伴厤緗涔嬮棿鐨勭戶鎵夸互鍙婂畬鏁寸殑榪愮畻鍔熻兘銆?span lang="EN-US">
姣斿璇達紝瀹屽叏涓嶇敤淇敼涓婇潰鐨勮鍙栭厤緗殑浠g爜錛屾垜浠粎浠呬慨鏀歸厤緗紝鐪嬬湅鍦?span lang="EN-US">Lua涓嬌鐢ㄤ笂榪板姛鑳斤細
data1 = { name="dragon.png" , rotation=180 }
data2 = { name = data1.name, rotation = data1.rotation / 2 }
data = {
data1, data2
}
姝ゆ椂錛?span lang="EN-US">data2鐨勬暟鎹畬鍏ㄤ緷璧栦簬data1鐨勬暟鎹紝褰撴湁浠諱綍涓滆タ闇瑕佷慨鏀圭殑鏃跺欙紝浣犲彧闇瑕佷慨鏀逛竴涓湴鏂癸紝瀵逛簬閰嶇疆鏉ヨ錛?span lang="EN-US">don't repeat yourself涔熸槸寰堟湁鎰忎箟鐨勩傛渶鏈閲嶈鐨勭殑鏄紝鍦ㄩ厤緗腑鑳藉榪涜璁$畻閭f槸闈炲父寮哄ぇ錛屽嵆浣垮畬鍏ㄤ笉鐢?span lang="EN-US">lua鐨勫嚱鏁板姛鑳戒笌浠g爜鐨勪氦浜掞紝浠呬粎閫氳繃lua鐨勮綆楋紝涔熷彲浠ュ畬鎴愭父鎴忎腑鎵鏈?span lang="EN-US">sprite鐨勫竷灞銆傘傘傘傘傘?span lang="EN-US">
灝忕粨
鐩稿浜庝嬌鐢?span lang="EN-US">XML,Json錛屼嬌鐢?span lang="EN-US">Lua浣滀負閰嶇疆緇濆鏄渶鏈寮哄ぇ鐨勩傘傘傘傘傘備綔涓轟竴涓畬鏁寸殑璇█錛屽畠鎷ユ湁浣犳兂鍦ㄩ厤緗腑瀹炵幇鐨勪竴鍒囧姛鑳姐備絾鏄己鐐逛篃鏄緢鏄庢樉鐨勶細
棣栧厛錛岄熷害涓婏紝Lua闇瑕佽В閲婅繍琛岋紝鍙兘鏄庢樉璺熶笉涓?span lang="EN-US">XML鎴栬?span lang="EN-US">Json鐨勮В鏋愰熷害銆備絾鏄紝閰嶇疆鐨勮В鏋愯鍙栧彲浠ラ兘鏀懼湪鍒濆鍖栭樁孌碉紝鎵浠ラ厤緗笉鏄お澶氱殑鏃跺欙紝涔熶笉綆楀お榪囬毦浠ユ帴鍙楋紝鍙﹀錛岃繕鍙互灝?span lang="EN-US">lua鐨勯厤緗畬鍏ㄤ綔涓哄紑鍙戞湡鐨勪竴縐嶆満鍒朵嬌鐢紝鍦ㄥ彂甯冨悗瀹屽叏杞寲涓?span lang="EN-US">2榪涘埗鏁版嵁銆?span lang="EN-US">
鍏舵錛?span lang="EN-US">Lua鐨勯厤緗鍙栭渶瑕佹墜鍔ㄨ皟鐢?span lang="EN-US">Lua鐨?span lang="EN-US">API鏉ュ畬鎴愶紝鐩稿浜?span lang="EN-US">XML錛?span lang="EN-US">Json閭g鏈夊緢鏂逛究鐨勫簱鐨勬儏鍐碉紝浣跨敤涓婅繕鏄夯鐑︿竴浜涳紝鐗瑰埆鏄?span lang="EN-US">Lua鐨?span lang="EN-US">API鐨勪嬌鐢ㄥ茍涓嶆槸閭d箞綆鍗曟槗鎳傦紝涓嶇畻澶洿瑙傘備絾鏄紝榪欎篃涓嶆槸涓嶅彲浠ュ厠鏈嶇殑錛屽畬鍏ㄥ彲浠ヨ嚜宸卞啓涓皬鍨嬬殑搴撳皢Lua鐨?span lang="EN-US">API灝佽璧鋒潵錛屽艦鎴愪竴涓被浼?span lang="EN-US">JsonCpp閭f牱鐨勫簱錛岀敤Map鏉ヨ〃紺轟竴鍒囥傝繖涓彲鑳介渶瑕侀檺鍒朵竴浜?span lang="EN-US">Lua璇硶鐨勬椂鍊欙紝鎴栬呭湪瑙f瀽鐨勬椂鍊欒繘琛屽彇鑸嶏紝姣斿鍑芥暟鍟ョ殑鍙兘闇瑕佽繃婊ゆ帀錛屼笉鐒墮偅灝變笉澶儚灝?span lang="EN-US">Lua浣滀負閰嶇疆浣跨敤浜嗐?span lang="EN-US">
榪樻湁錛?span lang="EN-US">Lua鐨勯厤緗殑鐢熸垚鏇村姞鏄病鏈?span lang="EN-US">XML,Json閭f牱鏈夊畬鍠勫簱鏀寔鏉ョ殑鏂逛究錛岃繖鐐規殏鏃舵病鏈夊姙娉曞厠鏈嶏紝鍐欎竴涓嚜鍔ㄧ敓鎴?span lang="EN-US">Lua閰嶇疆鏂囦歡鐨勫簱鎰熻騫朵笉鏄お榪囧鏄撶殑浜嬫儏銆傝屼笖錛岃嚜鍔ㄧ敓鎴愭椂錛?span lang="EN-US">lua鐨勪紭鍔垮叾瀹炲茍娌℃湁浣欏湴鍙戞尌鍑烘潵錛岄偅鏍風殑璇濓紝榪樹笉濡備嬌鐢?span lang="EN-US">Json銆?span lang="EN-US">
鎬葷殑鏉ヨ錛屽亣濡傛槸娌℃湁宸ュ叿錛岄渶瑕佸ぇ閲忔墜鍐欓厤緗殑璇濓紝瀵?span lang="EN-US">Lua鐨?span lang="EN-US">API榪涜涓灞傜畝鍗曠殑灝佽錛岀劧鍚庝嬌鐢?span lang="EN-US">Lua鏉ュ仛閰嶇疆錛岄偅榪樻槸浠跺緢鐖界殑浜嬫儏錛岄渶瑕佹墜鍐欑殑鏃跺欙紝浣犳墠浼氭劅瑙夊埌涓涓畬鏁磋璦浣滀負閰嶇疆緇欎綘甯︽潵鐨勫ソ澶勩?span lang="EN-US">
鏈枃鏉ヨ嚜CSDN鍗氬錛岃漿杞借鏍囨槑鍑哄錛?span lang="EN-US">http://blog.csdn.net/vagrxie/archive/
http://blog.csdn.net/bhwst/archive/2010/07/29/5774746.aspx
VC瑕佺紪璇慙UA鏂囦歡蹇呴』鍏堥厤緗甐C緙栫▼鐜銆傘傛垜鐢ㄧ殑鏄疺C6.0錛宭ua 5.1.4鐗?
棣栧厛灝唋ua鐨?lua.h" 錛?lualib.h"錛?"lauxlib.h" 榪欎笁涓斁鍦╲c紼嬪簭include鏂囦歡澶逛笅
鐒跺悗灝唋ua鐨刲ua5.1.lib鏀懼湪lib鏂囦歡澶逛笅灝監K浜?
涓嬮潰鐪嬬湅鎴戝啓鐨勪竴涓皬渚嬪瓙錛?
a.cpp
view plaincopy to clipboardprint?
#include "windows.h"
extern "C"{
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}
#pragma comment(lib,"lua5.1.lib")
lua_State * L;
static int clib(lua_State *L) //緇檒ua璋冪敤鐨刢鍑芥暟蹇呴』瀹氫箟鎴恠tatic int XXX(lua_State *L)
{
char path[MAX_PATH];
GetCurrentDirectory(MAX_PATH,path);
lua_pushstring(L,path);
return 1; //涓轟粈涔堣榪斿洖1錛熻繖鏄湁渚濇嵁鐨勶紝璇ュ嚱鏁版妸緇撴灉鍘嬪叆浜嗘爤錛宭ua璋冪敤璇ュ嚱鏁板皢浠庢爤涓?
//鍙?涓粨鏋?
}
int main ( int argc, char *argv[] )
{
int sum;
//鍒涘緩涓涓寚鍚憀ua瑙i噴鍣ㄧ殑鎸囬拡
L = luaL_newstate();
//鍔犺澆lua鏍囧噯搴?
luaL_openlibs(L);
//娉ㄥ唽C++鍑芥暟
lua_register(L,"clib",clib);
//鍔犺澆鑴氭湰
luaL_dofile(L,"4.lua");
//璋冪敤鍑芥暟
lua_getglobal(L,"run");
//榪愯鍑芥暟騫舵妸緇撴灉鍘嬪叆鏍?
lua_pcall(L,0,0,0);
//鍏抽棴騫墮噴鏀捐祫婧?
lua_close(L);
return 0;
}
#include "windows.h"
extern "C"{
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
}
#pragma comment(lib,"lua5.1.lib")
lua_State * L;
static int clib(lua_State *L) //緇檒ua璋冪敤鐨刢鍑芥暟蹇呴』瀹氫箟鎴恠tatic int XXX(lua_State *L)
{
char path[MAX_PATH];
GetCurrentDirectory(MAX_PATH,path);
lua_pushstring(L,path);
return 1; //涓轟粈涔堣榪斿洖1錛熻繖鏄湁渚濇嵁鐨勶紝璇ュ嚱鏁版妸緇撴灉鍘嬪叆浜嗘爤錛宭ua璋冪敤璇ュ嚱鏁板皢浠庢爤涓?
//鍙?涓粨鏋?
}
int main ( int argc, char *argv[] )
{
int sum;
//鍒涘緩涓涓寚鍚憀ua瑙i噴鍣ㄧ殑鎸囬拡
L = luaL_newstate();
//鍔犺澆lua鏍囧噯搴?
luaL_openlibs(L);
//娉ㄥ唽C++鍑芥暟
lua_register(L,"clib",clib);
//鍔犺澆鑴氭湰
luaL_dofile(L,"4.lua");
//璋冪敤鍑芥暟
lua_getglobal(L,"run");
//榪愯鍑芥暟騫舵妸緇撴灉鍘嬪叆鏍?
lua_pcall(L,0,0,0);
//鍏抽棴騫墮噴鏀捐祫婧?
lua_close(L);
return 0;
}
4.lua鏂囦歡
view plaincopy to clipboardprint?
function run()
print("call running from c")
print(clib())
end
function run()
print("call running from c")
print(clib())
end
榪欎釜渚嬪瓙瀹炵幇浜咰涓巐ua鐨勭浉浜掕皟鐢ㄣ傘傚彟澶栵紝榪樺彲浠ユ妸鎴戝墠闈竴綃噇ua璋冪敤C dll鐨勫唴瀹規暣鍚堝湪涓璧楓傘?
鏈枃鏉ヨ嚜CSDN鍗氬錛岃漿杞借鏍囨槑鍑哄錛歨ttp://blog.csdn.net/bhwst/archive/2010/07/29/5774746.aspx
Alas, Windows does not like an extra dot in there. Many things
break when you have an extra dot in DLL names. Depends on the
version of the OS, on the specific system call, on the library or
tool used ... it's hopeless. So please let's forget about it.
--Mike
鏉ヨ嚜lua-users.org鐨勪竴涓笘瀛?銆?br>鍘熸潵鏄?騫村墠鏈変漢紜畾浜嗕竴涓猯ua51.dll鍚嶅瓧鐨勫姩鎬佸簱錛屽茍涓旓紝鏈変漢瑙夊緱鎴戜滑闈炲父闇瑕佸湪5鍜?涔嬮棿鍔犱竴涓偣錛屼笉鐒秎ua鐨?.1鐗堝矀涓嶆槸鐪嬫垚lua鐨?1鐗堜簡錛?br>瀵規錛屾湁浜鴻繘涓姝ユ彁鍑轟簡鐤戦棶 錛岃涓鴻繖涓棶棰樻庝箞榪欎箞涔呬簡绔熺劧娌℃湁浜轟慨澶嶏紵
鎺ョ潃鏈変漢鍥炵瓟浜嗭細
But who's duty is to resolve the issue?
It's clearly not an issue of Lua as a language. It's just a consequence of (a very popular) LuaBinaries once releasing lua5.1.dll that became a de facto binary standard, then authors of many third-party Lua libraries were releasing binary packages compatible with LuaBinaries.
Note: I'm not blaming LuaBinaries; that was just one unfortunate decision that is difficult to be undone. --
Shmuel
鎴戜滑鐭ラ亾浜嗭細
LuaBinaries鍋氬嚭浜嗕竴涓敊璇殑鍐沖畾錛屼絾鏄凡緇忓彂甯冧簡錛屽緢澶氱3鏂圭殑搴撲篃鍙戝竷浜嗭紝騫朵笖渚濊禆浜嶭uaBinaries鐨勮繖涓猯ua51.dll錛屼簬鏄細
that was just one unfortunate decision that is difficult to be undone.
閭d粎浠呮槸涓涓繃鍘誨仛涓嬶紝鐜板湪闅句互鎾ら攢鐨勪笉騫稿喅瀹氥傘傘傘傘傘傘傘傘傘傘傘?
鏈夌殑涓滆タ瀛樺湪浜嗭紝鍗充嬌鏄笉鍚堢悊鐨勫瓨鍦紝鍥犱負瀹冨瓨鍦ㄤ簡涓孌墊椂闂翠簡錛屽洜涓烘儻鎬э紝瀹冭繕浼氬瓨鍦ㄥ湪閭i噷銆傜紪紼嬩腑錛岃繖縐嶆儏鍐電粡甯稿嚭鐜般傜獊鐒惰鎴戞兂璧蜂笂涓」鐩腑錛屽ぇ瀹剁粡甯稿欏圭洰涓供鑴氫唬鐮佸瓨鍦ㄥ師鍥犵殑瑙i噴錛?#8220;鍘嗗彶鍘熷洜”銆?br> 瀵逛簬浠g爜鏉ヨ錛屽嵆浣垮ぇ瀹墮兘鐭ラ亾鍙互閲嶆瀯錛屼絾鏄噸鏋勬槸鏈変唬浠風殑錛屽緢澶氭椂鍊欏ぇ瀹跺氨濡ュ崗鍦ㄥ巻鍙插師鍥犲綋涓?br> 瀵逛簬璇█鏉ヨ錛孋++灝辨槸瀵瑰巻鍙茶繘琛屾渶澶уΕ鍗忚屼駭鐢熺殑璇█錛屽ぇ瀹墮兘鎵胯錛屽亣濡傚綋騫碈++涓嶅吋瀹笴鐨勮瘽錛孋++鏍規湰灝卞緱涓嶅埌鐜板湪榪欐牱鐨勬祦琛岀▼搴︼紝涔熼兘鎵胯錛屽洜涓篊++鍏煎C錛岋紙甯稿父琚О涓哄巻鍙茬殑鍖呰⒈錛塁++鍦ㄨ璦鐨勪紭緹庣▼搴︿笂鎹熷け浜嗗お澶氥?br> 鎯寵搗鍥藉唴鏌愪釜澶х墰鏈夎繃綾諱技鐨勬劅鎱紝“鐜板湪姣忓仛涓涓璁″喅瀹氱殑鏃跺欓兘闈炲父灝忓績錛屽洜涓洪偅鍙兘浼氳浣跨敤闈炲父闈炲父闀跨殑鏃墮棿錛屽綋瀹冭繕鑳芥甯稿伐浣滅殑鏃跺欙紝鐢氳嚦涓嶄細鏈変漢鎯寵鍘婚噸鍐欏畠“
鍛靛懙錛屼粎浠呭皢榪欎釜鏈夎叮鐨勪簨浠朵綔涓虹紪紼嬩腑鐨勪竴涓蕉浜嬫潵鐪嬪惂銆?
鏈枃鏉ヨ嚜CSDN鍗氬錛岃漿杞借鏍囨槑鍑哄錛歨ttp://blog.csdn.net/vagrxie/archive/2010/07/23/5756804.aspx