備忘録

備忘録

Windows上のLuaでLuaJITを利用してffiを利用する方法

Ⅰ. はじめに

タイトルの通り「Windows上のLuaでLuaJITを利用してffiを利用する方法」です。

環境

  • Windows 10
  • VisualStudio 2019 Community

Ⅱ. やり方

2. Lua 5.1を任意のディレクトリに展開する
3. LuaJITをダウンロードする

https://luajit.org/download.html

4. LuaJITを任意のディレクトリに展開する
5. 「x64 Native Tools Command Prompt for VS2019」を起動する

f:id:kagasu:20200605195054p:plain

6. LuaJITをビルドする
cd C:\LuaJIT\src
msvcbuild.bat
7. ファイルをコピーする

※lua51.dllをlua5.1.dllという名前に変更してコピーします。

copy C:\LuaJIT\src\lua51.dll C:\Lua\lua5.1.dll
copy C:\LuaJIT\src\luajit.exe C:\Lua\luajit.exe

mkdir C:\Lua\lua\jit
copy C:\LuaJIT\src\jit\* C:\Lua\lua\jit\
8. サンプルプログラムを書く

test.lua

local ffi = require("ffi")
ffi.cdef[[
int MessageBoxA(void *w, const char *txt, const char *cap, int type);
]]
ffi.C.MessageBoxA(nil, "Hello world!", "Test", 0)

実行結果

lua5.1 test.lua

f:id:kagasu:20200605195505p:plain

FAQ

Q. LuaJITを利用する理由は?

A. 標準のLuaではffiが利用できないからです

Q. Lua 5.1を利用する理由は?

A. 2020/06/05時点でLuaJITはLua 5.1のみ対応しているからです