備忘録

備忘録

WindowsでLuaから呼び出し可能なライブラリをC++で作成する方法

Ⅰ. はじめに

タイトルの通り「WindowsLuaから呼び出し可能なライブラリをC++で作成する方法」です。

Ⅱ. やり方

1. luaのライブラリをインストールする
vcpkg install lua:x64-windows
2. モジュール定義ファイルを指定する

f:id:kagasu:20170327214624p:plain:h200
dllexport.def

EXPORTS 
  luaopen_LuaTestLib
3. サンプルプログラムを書く

Source.cpp

#include <lua.hpp>

int MySum(lua_State* L)
{
  auto x = luaL_checkinteger(L, 1);
  auto y = luaL_checkinteger(L, 2);
  auto result = x + y;

  // 戻り値を設定する
  lua_pushinteger(L, result);

  // 戻り値の数は1個
  return 1;
}

int luaopen_LuaTestLib(lua_State * L)
{
  lua_register(L, "MySum", MySum);
  return 0;
}

test.lua

require "LuaTestLib"

local result = MySum(1, 2)
print(result)

実行結果

$ lua test.lua
3