Visual Studio 2017 にluaを入れた

環境

Windows10
lua5.3.4
Visual Studio Community 2017

導入手順

まず、luaの公式サイトに行く
The Programming Language Lua

dounloadのページのBinariesのget a binaryのリンク先へ行って
Downloadsから「DLL and Includes (MingW 4 Compatible)」が付いた奴を
導入環境に合わせて手に入れる
自分は情弱Windowsマンなのでおとなしく

  • lua-5.3.4_Win32_dllw4_lib.zip

をDLした
(なお、luaの圧縮ファイル(Source code)を使用する場合は
makeコマンドとか使えないとあれ
詳しいことは圧縮ファイルの中のdocの中身読んでください)

で、DLしたzipの中身は

  • include(フォルダ)
  • liblua53.a
  • lua53.dll

の3種が入っているはず

ここで、VisualStudioを立ち上げて適当にプロジェクトとかソリューション作って
プロジェクトのプロパティを開く*1
で、構成はすべての構成にしておいて
C/C++の全般の追加のインクルードディレクトリに先ほどの
include(フォルダ)
を指定、リンカーの入力の追加の依存ファイルに
liblua53.a
を指定、最後にVisualStudioで管理しているフォルダ(プロジェクトのフォルダ)にある
Debug(とRelease)フォルダ*2
lua53.dll
をコピペで入れる

これで動くと思う
(これでダメだったら、リンカーの全般の追加のライブラリディレクトリに
3種が入ってるフォルダを指定してみるとか)

お試しプログラム

main.cppとかと同じ場所に以下のようなtest.luaというファイルを作る

--test.lua
function hoge()
    coroutine.yield("文1")
    coroutine.yield("文2")
    coroutine.yield("文3")
    return ""
end

で、main.cppはこんな感じ

//main.cpp
#include "lua.hpp"
#include <iostream>

int main(){
    //luaステートの作成
    lua_State *L = luaL_newstate();
    //openlibsでいろんなライブラリを開く、個別にやる方法もある?
    luaL_openlibs(L);
    //luaファイルを開いて読み込み
    if (luaL_dofile(L, "test.lua")) {
        lua_close(L);
        return;
    }
    //コルーチンを作成
    lua_State* co = lua_newthread(L);
    lua_getglobal(co, "hoge");
    //実行
    while (true) {
        lua_resume(co, 0, 0);
        const char* ret = lua_tostring(co, -1);//ここら辺にbreakpointを指定しておくと動きがわかる
        if (strcmp(ret, "") == 0)break;
    }

    lua_close(L);
    return 0;
}

たぶん、動く(単体で確認してない)
breakpointを指定して変数のretを確認すれば
コルーチンが動いてる様子がわかると思う
このプログラムの参考元
Lua組み込み編

これ以上になんか詳しいリファレンスを知りたいなら
圧縮ファイル内にあるdoc/manual.htmlを読むべし

*1:ちなみに、プロジェクトのプロパティが見当たらない場合は、適当に1つcppファイルとかを作ってエディタに表示すれば出ると思う

*2:ないなら一度プログラムを実行すると出てくると思う