Win32: delayload lua51.dll

This commit is contained in:
gocha 2013-03-20 14:46:55 +00:00
parent d8ae7d5d0e
commit 3316c49348
4 changed files with 38 additions and 6 deletions

View File

@ -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 <lua.h>
@ -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;

View File

@ -115,6 +115,7 @@
</DataExecutionPrevention>
<SupportUnloadOfDelayLoadedDLL>true</SupportUnloadOfDelayLoadedDLL>
<TargetMachine>MachineX86</TargetMachine>
<DelayLoadDLLs>lua51.dll</DelayLoadDLLs>
</Link>
<Manifest>
<AdditionalManifestFiles>$(ProjectDir)../src/drivers/win/fceu_x86.manifest;%(AdditionalManifestFiles)</AdditionalManifestFiles>
@ -149,7 +150,7 @@
</ClCompile>
<Link>
<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;%(AdditionalDependencies)</AdditionalDependencies>
<DelayLoadDLLs>%(DelayLoadDLLs)</DelayLoadDLLs>
<DelayLoadDLLs>lua51.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
@ -193,6 +194,7 @@
<SubSystem>Windows</SubSystem>
<EntryPointSymbol>mainCRTStartup</EntryPointSymbol>
<TargetMachine>MachineX64</TargetMachine>
<DelayLoadDLLs>lua51.dll</DelayLoadDLLs>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
@ -221,6 +223,7 @@
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<EntryPointSymbol>mainCRTStartup</EntryPointSymbol>
<TargetMachine>MachineX64</TargetMachine>
<DelayLoadDLLs>lua51.dll</DelayLoadDLLs>
</Link>
</ItemDefinitionGroup>
<ItemGroup>

View File

@ -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"

View File

@ -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"