#include <DxLib.h>
#include "lua.hpp"
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int){
SetDoubleStartValidFlag(TRUE);
//SetOutApplicationLogValidFlag(false); //ログ出力しない
ChangeWindowMode(TRUE);
DxLib_Init();
SetDrawScreen(DX_SCREEN_BACK);
SetWindowSizeChangeEnableFlag(true); //ウィンドウサイズを自由に変更できる
SetAlwaysRunFlag(TRUE); //ウィンドウがノンアクティブでも実行
int val=0;
lua_State *L = luaL_newstate();
// Luaファイルを開いて読み込み
if (luaL_dofile(L, "test.lua")) {
//printf("%s\n", lua_tostring(L, lua_gettop(L)));
lua_close(L);
return 0;
}
lua_getglobal(L, "val");
val = (int)lua_tonumber(L, 1);
lua_pop(L, lua_gettop(L));
lua_close(L);
// while(裏画面を表画面に反映, メッセージ処理, 画面クリア, キー更新)
while (ScreenFlip() == 0 && ProcessMessage() == 0 && ClearDrawScreen() == 0){
DrawFormatString(0, 0, GetColor(255, 255, 255), "%d", val);
}
DxLib_End(); // DXライブラリ終了処理
return 0;
}
1>------ ビルド開始: プロジェクト:LuaDXTest, 構成:Debug Win32 ------
1> main.cpp
1> LuaLib.lib(lstate.obj) : MSIL .netmodule または /GL を伴ってコンパイルされたモジュールが見つかりました。/LTCG を使用して再開始してください。リンカーのパフォーマンスを向上させるためには、コマンドラインに /LTCG を追加してください。
1>LINK : warning LNK4075: /INCREMENTAL は /LTCG の指定によって無視されます。
1>main.obj : warning LNK4075: /EDITANDCONTINUE は /OPT:LBR の指定によって無視されます。
1>MSVCRT.lib(MSVCR120.dll) : error LNK2005: _strncmp は既に LIBCMTD.lib(strncmp.obj) で定義されています。
1>MSVCRT.lib(MSVCR120.dll) : error LNK2005: _strchr は既に LIBCMTD.lib(strchr.obj) で定義されています。
1>MSVCRT.lib(MSVCR120.dll) : error LNK2005: _longjmp は既に LIBCMTD.lib(longjmp.obj) で定義されています。
1>LINK : warning LNK4098: defaultlib 'MSVCRT' は他のライブラリの使用と競合しています。/NODEFAULTLIB:library を使用してください。
1>C:\Users\xxx\Desktop\LuaDXTest\Debug\LuaDXTest.exe : fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました。
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
test.luaは
val = 150
の一行のみです。
環境はVC2013
Luaは5.3.2です。