前提・実現したいこと
Dxライブラリを使ったゲームにLuaを実装しようとしましたが、lua_tostringからの返しがないです
該当のソースコード
C++
1#include "DxLib.h" 2#include <stdio.h> 3#include <stdlib.h> 4#include "lua/lua.hpp" 5#pragma comment(lib,"LUA-Static_Release.lib") 6 7int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) 8{ 9 ChangeWindowMode(TRUE); 10 if (DxLib_Init() == -1) 11 { 12 return -1; 13 } 14 15 lua_State* L = luaL_newstate(); 16 luaL_openlibs(L); 17 18 19 if (luaL_dostring(L, "print('hello world!!')")==true) 20 { 21 printfDx("error has occurred\n"); 22 } 23 if (lua_tostring(L, -1)==NULL) 24 { 25 printfDx("there are no string"); 26 } 27 28 WaitKey(); 29 30 DxLib_End(); 31 32 lua_close(L); 33 34 return 0; 35} 36
画面への出力
画面に表示された出力は以下のとおりです。
there are no string
試したこと
Unicode/Multi-byte Characterの関係かと思いlibファイルをMulti-byte Characterに設定を変えてリビルドしたり同じくlibファイルをMDからMTに設定を変えてリビルドしましたが結果は変わりませんでした
補足情報(FW/ツールのバージョンなど)
VC2015 を利用しています
Lua は5.3.5です
追記
こちらがDxライブラリを使っていないプロジェクトでのコードです。
C++
1#include <stdio.h> 2#include <stdlib.h> 3#include "lua.hpp" 4#pragma comment(lib,"LUA-StaticTest.lib") 5 6int main() 7{ 8 lua_State* L = luaL_newstate(); 9 luaL_openlibs(L); 10 11 if (luaL_dostring(L, "print('Hello World')")) 12 { 13 printf("%s\n", lua_tostring(L, -1)); 14 } 15 16 lua_close(L); 17 while (true); 18}
このコードではコンソール上にHello Worldの出力が出ました。
対してDXライブラリを使ったプロジェクトでは空白になります。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/03 06:01
2020/02/03 06:26
2020/02/03 06:35
2020/02/03 06:36
2020/02/03 08:45