DXライブラリでLuaが使えない

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
暇大生

DXライブラリでLuaが使えない

#1

投稿記事 by 暇大生 » 9年前

コンソールアプリケーションで同じようなことをしたのですが問題ありませんでした。

コード:

#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です。

暇大生

Re: DXライブラリでLuaが使えない

#2

投稿記事 by 暇大生 » 9年前

わかる人がいなさそうだったのでマルチポストしたのですがリンク張り忘れてました。すいません。
https://teratail.com/questions/37441
さらにマルチポスト先で解決しました。
次からマルチポストしたときはちゃんとリンク張ります。すいませんでした。

アバター
みけCAT
記事: 6734
登録日時: 14年前
住所: 千葉県
連絡を取る:

Re: DXライブラリでLuaが使えない

#3

投稿記事 by みけCAT » 9年前

マルチポストをする場合は、相互リンクが必要です。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

閉鎖

“C言語何でも質問掲示板” へ戻る