Windows下编译luaiconv为DLL拓展

前言

有许多应用程序、游戏使用Lua作为插件的开发语言,有时候我们会遇到字符集相关的问题,但是Lua自身却没有内置字符集转换相关的库和函数,这时候就要依赖外部拓展了。源生自Linux平台的libiconv库具有强大的字符集转换功能,我们可以为Lua编写iconv拓展以实现在Lua进行字符集转换。

准备

想要为Lua编写iconv拓展,首先我们需要在Windows下获得libiconv库,新版libiconv移除了Windows下的Makefile支持,编译起来就比较麻烦了。

点击这里可以直接下载我编译好了的libiconv库,版本为1.15

想自己编译的可以参考这篇文章:WIN10 下 VS2015 编译libiconv-1.15

编译 luaiconv

  • 首先在 Github 下载 luaiconv 源文件,当前版本为 lua-iconv-7.tar.gz(https://github.com/ittner/lua-iconv/downloads)。
  • 在 VS 中新建 Win32 项目,命名为 iconv,选择 DLL,勾选空项目。
  • 将 luaiconv 中的 luaiconv.c 复制到 \iconv\iconv\ ,并添加到项目中,在 luaopen_iconv 函数前添加 __declspec(dllexport)
  • 在项目属性中添加 libiconv 以及 lua 的附加包含目录(属性 - C/C++ - 常规)、附加库目录(属性 - 链接器 - 常规)、附加依赖项(属性 - 链接器 - 输入,填写 .lib 文件路径)。
  • 生成解决方案/项目,得到 DLL 文件。

测试 iconv.dll

  • 下载测试文件(包含编译好的 dll 文件)
  • 将 iconv.dll 复制到测试目录 
  • 在测试文件目录下运行(命令提示符) lua test.lua 启动测试

 

你可能感兴趣的:(windows,luaiconv,dll)