將iconv編譯成lua介面

2021-06-26 23:26:10 字數 2244 閱讀 3098

前一篇博文說了,在cocos2dx中怎麼樣使用iconv轉碼,這節我們將上一節中寫的轉碼函式,做成乙個lua介面,在lua指令碼中使用。

// luaiconv.h

#ifndef __lua_iconv_h__

#define __lua_iconv_h__

#include "tolua++.h"

#include "tolua_event.h"

#include "lauxlib.h"

#if cc_target_platform == cc_platform_win32

#include "iconv.h"

#elif cc_target_platform == cc_platform_ios

#include #elif cc_target_platform == cc_platform_android

#include "iconv.h"

#endif

int tolua_iconv_open(lua_state *l);

#endif

#include "luaiconv.h"

#include #define max_string_size 1024

#define test_str ("hello, 這是個轉碼測試字串")

bool iconv_convert(void *src, unsigned int src_len,char *src_charset, void *dest, unsigned int dest_len, char *dest_charset)

mutant = iconv(oconv, &in, &in_left, &out, &out_left );

iconv_close(oconv);

if(mutant == (size_t)(-1))

converted = dest_len - out_left;

dest_ptr[converted]='\0';

printf("*********x src string:%s\n", src);

printf("*********x to convert %u characters, %u mutanted , %u converted \n",src_len,mutant,converted);

printf("*********x dst string:%s\n", dest);

return true;

}void converttest()

tolua_api int luaiconv(lua_state *l)

if(!iconv_convert(inbuf, ibleft, src_charset, outbuf, obleft, dst_charset))

lua_pushstring(l, outbuf);

free(outbuf);

return 1;

}static lual_reg iconvlib = , };

// 函式名必須為luaopen_***,其中***表示library名稱,lua**require "***"需要與之對應。

int luaopen_iconv(lua_state* l)

int tolua_iconv_open(lua_state *l)

#include "luaiconv.h"

ccluaengine* pengine = ccluaengine::defaultengine();

ccscriptenginemanager::sharedmanager()->setscriptengine(pengine);

tolua_iconv_open(pengine->getluastack()->getluastate());

在lua中這樣使用:

require "iconv"

iconv.luaiconv("string to convert code","gbk","utf-8")

local_src_files 中加上luaiconv.cpp 

切記在末尾加上空格和續行符:" \"

否則有可能會報錯:

make: *** no rule to make target '***.o', needed by '***'. stop

將Js檔案編譯成dll檔案

1.向專案中新增jscript檔案 script 1.js function doclick1 script 2.js function doclick2 2.解決方案資源管理器中,右鍵檢視script 1.js和script 2.js的屬性,把高階中的 生成操作 屬性設定成 嵌入的資源 3.向as...

如何將Sass編譯成CSS

命令編譯 命令編譯就是在終端中輸入sass命令來編譯 sass 這種編譯方式使用起來很簡單。示例 假設現在有乙個sass檔案,檔名為style.scss sass 檔案的副檔名名.scss 我們需要將這個檔案中的 編譯成 css 可以執行如下命令 sass style.scss style.css命...

2019 7 9 編譯成果

測評1 輸出所有得 key和 value dic 測評 2 有如下值集合 a 12,21,34,43,55,63,77,88,99,90 大於63 的值儲存至字典的第乙個 key中,將小於等於 63的值儲存至第二個 key的值中。即 測評3 查詢列表中元素,移除每個元素的空格,並查詢以a或 a開頭並...