From 3316c4934807dbef3932788c4c5ac339d1ca72eb Mon Sep 17 00:00:00 2001 From: gocha Date: Wed, 20 Mar 2013 14:46:55 +0000 Subject: [PATCH] Win32: delayload lua51.dll --- trunk/src/lua-engine.cpp | 24 ++++++++++++++++++++++++ trunk/vc/vc10_fceux.vcxproj | 5 ++++- trunk/vc/vc8_fceux.vcproj | 9 ++++++--- trunk/vc/vc9_fceux.vcproj | 6 ++++-- 4 files changed, 38 insertions(+), 6 deletions(-) diff --git a/trunk/src/lua-engine.cpp b/trunk/src/lua-engine.cpp index 848db385..417e810f 100644 --- a/trunk/src/lua-engine.cpp +++ b/trunk/src/lua-engine.cpp @@ -48,6 +48,22 @@ extern TASEDITOR_LUA taseditor_lua; #endif +bool DemandLua() +{ +#ifdef WIN32 + HMODULE mod = LoadLibrary("lua51.dll"); + if(!mod) + { + MessageBox(NULL, "lua51.dll was not found. Please get it into your PATH or in the same directory as fceux.exe", "FCEUX", MB_OK | MB_ICONERROR); + return false; + } + FreeLibrary(mod); + return true; +#else + return true; +#endif +} + extern "C" { #include @@ -5482,6 +5498,11 @@ void FCEU_LuaFrameBoundary() * Returns true on success, false on failure. */ int FCEU_LoadLuaCode(const char *filename, const char *arg) { + if (!DemandLua()) + { + return 0; + } + if (filename != luaScriptName) { if (luaScriptName) free(luaScriptName); @@ -5653,6 +5674,9 @@ void FCEU_ReloadLuaCode() */ void FCEU_LuaStop() { + if (!DemandLua()) + return; + //already killed if (!L) return; diff --git a/trunk/vc/vc10_fceux.vcxproj b/trunk/vc/vc10_fceux.vcxproj index d209836f..a68054eb 100644 --- a/trunk/vc/vc10_fceux.vcxproj +++ b/trunk/vc/vc10_fceux.vcxproj @@ -115,6 +115,7 @@ true MachineX86 + lua51.dll $(ProjectDir)../src/drivers/win/fceu_x86.manifest;%(AdditionalManifestFiles) @@ -149,7 +150,7 @@ Rpcrt4.lib;comctl32.lib;vfw32.lib;winmm.lib;ws2_32.lib;htmlhelp.lib;../src/drivers/win/directx/dsound.lib;../src/drivers/win/directx/dxguid.lib;../src/drivers/win/directx/ddraw.lib;../src/drivers/win/directx/dinput.lib;../src/drivers/win/lua/win32/lua51.lib;luaperks.lib;psapi.lib;mpr.lib;%(AdditionalDependencies) - %(DelayLoadDLLs) + lua51.dll;%(DelayLoadDLLs) true Windows true @@ -193,6 +194,7 @@ Windows mainCRTStartup MachineX64 + lua51.dll @@ -221,6 +223,7 @@ true mainCRTStartup MachineX64 + lua51.dll diff --git a/trunk/vc/vc8_fceux.vcproj b/trunk/vc/vc8_fceux.vcproj index e30cca71..005fd571 100644 --- a/trunk/vc/vc8_fceux.vcproj +++ b/trunk/vc/vc8_fceux.vcproj @@ -71,7 +71,7 @@ Name="VCLinkerTool" AdditionalDependencies="Rpcrt4.lib comctl32.lib vfw32.lib winmm.lib ws2_32.lib htmlhelp.lib ../src/drivers/win/directx/dsound.lib ../src/drivers/win/directx/dxguid.lib ../src/drivers/win/directx/ddraw.lib ../src/drivers/win/directx/dinput.lib ../src/drivers/win/lua/win32/lua51.lib luaperks.lib delayimp.lib psapi.lib mpr.lib" LinkIncremental="2" - DelayLoadDLLs="gdi32.dll" + DelayLoadDLLs="gdi32.dll;lua51.dll" GenerateDebugInformation="true" SubSystem="1" EntryPointSymbol="mainCRTStartup" @@ -157,6 +157,7 @@ Name="VCLinkerTool" AdditionalDependencies="dxguid.lib winmm.lib dinput.lib ws2_32.lib ddraw.lib dsound.lib ../src/drivers/win/lua/x64/lua51.lib" LinkIncremental="2" + DelayLoadDLLs="lua51.dll" GenerateDebugInformation="true" SubSystem="2" EntryPointSymbol="mainCRTStartup" @@ -241,7 +242,7 @@ Name="VCLinkerTool" AdditionalDependencies="Rpcrt4.lib comctl32.lib vfw32.lib winmm.lib ws2_32.lib htmlhelp.lib ../src/drivers/win/directx/dsound.lib ../src/drivers/win/directx/dxguid.lib ../src/drivers/win/directx/ddraw.lib ../src/drivers/win/directx/dinput.lib ../src/drivers/win/lua/win32/lua51.lib luaperks.lib delayimp.lib psapi.lib mpr.lib" LinkIncremental="1" - DelayLoadDLLs="gdi32.dll" + DelayLoadDLLs="gdi32.dll;lua51.dll" GenerateDebugInformation="true" SubSystem="2" OptimizeReferences="2" @@ -327,6 +328,7 @@ Name="VCLinkerTool" AdditionalDependencies="dxguid.lib winmm.lib dinput.lib ws2_32.lib ddraw.lib dsound.lib ../src/drivers/win/lua/x64/lua51.lib" LinkIncremental="1" + DelayLoadDLLs="lua51.dll" GenerateDebugInformation="true" SubSystem="2" OptimizeReferences="2" @@ -416,7 +418,7 @@ Name="VCLinkerTool" AdditionalDependencies="Rpcrt4.lib comctl32.lib vfw32.lib winmm.lib ws2_32.lib htmlhelp.lib ../src/drivers/win/directx/dsound.lib ../src/drivers/win/directx/dxguid.lib ../src/drivers/win/directx/ddraw.lib ../src/drivers/win/directx/dinput.lib ../src/drivers/win/lua/win32/lua51.lib luaperks.lib delayimp.lib psapi.lib mpr.lib" LinkIncremental="1" - DelayLoadDLLs="gdi32.dll" + DelayLoadDLLs="gdi32.dll;lua51.dll" GenerateDebugInformation="true" SubSystem="2" OptimizeReferences="2" @@ -502,6 +504,7 @@ Name="VCLinkerTool" AdditionalDependencies="dxguid.lib winmm.lib dinput.lib ws2_32.lib ddraw.lib dsound.lib ../src/drivers/win/lua/x64/lua51.lib" LinkIncremental="1" + DelayLoadDLLs="lua51.dll" GenerateDebugInformation="true" SubSystem="2" OptimizeReferences="2" diff --git a/trunk/vc/vc9_fceux.vcproj b/trunk/vc/vc9_fceux.vcproj index febb40b4..32aea9d5 100644 --- a/trunk/vc/vc9_fceux.vcproj +++ b/trunk/vc/vc9_fceux.vcproj @@ -72,7 +72,7 @@ Name="VCLinkerTool" AdditionalDependencies="Rpcrt4.lib comctl32.lib vfw32.lib winmm.lib ws2_32.lib htmlhelp.lib ../src/drivers/win/directx/dsound.lib ../src/drivers/win/directx/dxguid.lib ../src/drivers/win/directx/ddraw.lib ../src/drivers/win/directx/dinput.lib ../src/drivers/win/lua/win32/lua51.lib luaperks.lib psapi.lib mpr.lib" LinkIncremental="2" - DelayLoadDLLs="" + DelayLoadDLLs="lua51.dll" GenerateDebugInformation="true" SubSystem="1" EntryPointSymbol="mainCRTStartup" @@ -158,6 +158,7 @@ Name="VCLinkerTool" AdditionalDependencies="dxguid.lib winmm.lib dinput.lib ws2_32.lib ddraw.lib dsound.lib ../src/drivers/win/lua/x64/lua51.lib" LinkIncremental="2" + DelayLoadDLLs="lua51.dll" GenerateDebugInformation="true" SubSystem="2" EntryPointSymbol="mainCRTStartup" @@ -239,7 +240,7 @@ Name="VCLinkerTool" AdditionalDependencies="Rpcrt4.lib comctl32.lib vfw32.lib winmm.lib ws2_32.lib htmlhelp.lib ../src/drivers/win/directx/dsound.lib ../src/drivers/win/directx/dxguid.lib ../src/drivers/win/directx/ddraw.lib ../src/drivers/win/directx/dinput.lib ../src/drivers/win/lua/win32/lua51.lib luaperks.lib psapi.lib mpr.lib" LinkIncremental="1" - DelayLoadDLLs="" + DelayLoadDLLs="lua51.dll" GenerateDebugInformation="true" SubSystem="2" OptimizeReferences="2" @@ -325,6 +326,7 @@ Name="VCLinkerTool" AdditionalDependencies="dxguid.lib winmm.lib dinput.lib ws2_32.lib ddraw.lib dsound.lib ../src/drivers/win/lua/x64/lua51.lib" LinkIncremental="1" + DelayLoadDLLs="lua51.dll" GenerateDebugInformation="true" SubSystem="2" OptimizeReferences="2"