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; extern TASEDITOR_LUA taseditor_lua;
#endif #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" extern "C"
{ {
#include <lua.h> #include <lua.h>
@ -5482,6 +5498,11 @@ void FCEU_LuaFrameBoundary()
* Returns true on success, false on failure. * Returns true on success, false on failure.
*/ */
int FCEU_LoadLuaCode(const char *filename, const char *arg) { int FCEU_LoadLuaCode(const char *filename, const char *arg) {
if (!DemandLua())
{
return 0;
}
if (filename != luaScriptName) if (filename != luaScriptName)
{ {
if (luaScriptName) free(luaScriptName); if (luaScriptName) free(luaScriptName);
@ -5653,6 +5674,9 @@ void FCEU_ReloadLuaCode()
*/ */
void FCEU_LuaStop() { void FCEU_LuaStop() {
if (!DemandLua())
return;
//already killed //already killed
if (!L) return; if (!L) return;

View File

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

View File

@ -71,7 +71,7 @@
Name="VCLinkerTool" 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" 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" LinkIncremental="2"
DelayLoadDLLs="gdi32.dll" DelayLoadDLLs="gdi32.dll;lua51.dll"
GenerateDebugInformation="true" GenerateDebugInformation="true"
SubSystem="1" SubSystem="1"
EntryPointSymbol="mainCRTStartup" EntryPointSymbol="mainCRTStartup"
@ -157,6 +157,7 @@
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="dxguid.lib winmm.lib dinput.lib ws2_32.lib ddraw.lib dsound.lib ../src/drivers/win/lua/x64/lua51.lib" AdditionalDependencies="dxguid.lib winmm.lib dinput.lib ws2_32.lib ddraw.lib dsound.lib ../src/drivers/win/lua/x64/lua51.lib"
LinkIncremental="2" LinkIncremental="2"
DelayLoadDLLs="lua51.dll"
GenerateDebugInformation="true" GenerateDebugInformation="true"
SubSystem="2" SubSystem="2"
EntryPointSymbol="mainCRTStartup" EntryPointSymbol="mainCRTStartup"
@ -241,7 +242,7 @@
Name="VCLinkerTool" 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" 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" LinkIncremental="1"
DelayLoadDLLs="gdi32.dll" DelayLoadDLLs="gdi32.dll;lua51.dll"
GenerateDebugInformation="true" GenerateDebugInformation="true"
SubSystem="2" SubSystem="2"
OptimizeReferences="2" OptimizeReferences="2"
@ -327,6 +328,7 @@
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="dxguid.lib winmm.lib dinput.lib ws2_32.lib ddraw.lib dsound.lib ../src/drivers/win/lua/x64/lua51.lib" AdditionalDependencies="dxguid.lib winmm.lib dinput.lib ws2_32.lib ddraw.lib dsound.lib ../src/drivers/win/lua/x64/lua51.lib"
LinkIncremental="1" LinkIncremental="1"
DelayLoadDLLs="lua51.dll"
GenerateDebugInformation="true" GenerateDebugInformation="true"
SubSystem="2" SubSystem="2"
OptimizeReferences="2" OptimizeReferences="2"
@ -416,7 +418,7 @@
Name="VCLinkerTool" 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" 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" LinkIncremental="1"
DelayLoadDLLs="gdi32.dll" DelayLoadDLLs="gdi32.dll;lua51.dll"
GenerateDebugInformation="true" GenerateDebugInformation="true"
SubSystem="2" SubSystem="2"
OptimizeReferences="2" OptimizeReferences="2"
@ -502,6 +504,7 @@
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="dxguid.lib winmm.lib dinput.lib ws2_32.lib ddraw.lib dsound.lib ../src/drivers/win/lua/x64/lua51.lib" AdditionalDependencies="dxguid.lib winmm.lib dinput.lib ws2_32.lib ddraw.lib dsound.lib ../src/drivers/win/lua/x64/lua51.lib"
LinkIncremental="1" LinkIncremental="1"
DelayLoadDLLs="lua51.dll"
GenerateDebugInformation="true" GenerateDebugInformation="true"
SubSystem="2" SubSystem="2"
OptimizeReferences="2" OptimizeReferences="2"

View File

@ -72,7 +72,7 @@
Name="VCLinkerTool" 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" 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" LinkIncremental="2"
DelayLoadDLLs="" DelayLoadDLLs="lua51.dll"
GenerateDebugInformation="true" GenerateDebugInformation="true"
SubSystem="1" SubSystem="1"
EntryPointSymbol="mainCRTStartup" EntryPointSymbol="mainCRTStartup"
@ -158,6 +158,7 @@
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="dxguid.lib winmm.lib dinput.lib ws2_32.lib ddraw.lib dsound.lib ../src/drivers/win/lua/x64/lua51.lib" AdditionalDependencies="dxguid.lib winmm.lib dinput.lib ws2_32.lib ddraw.lib dsound.lib ../src/drivers/win/lua/x64/lua51.lib"
LinkIncremental="2" LinkIncremental="2"
DelayLoadDLLs="lua51.dll"
GenerateDebugInformation="true" GenerateDebugInformation="true"
SubSystem="2" SubSystem="2"
EntryPointSymbol="mainCRTStartup" EntryPointSymbol="mainCRTStartup"
@ -239,7 +240,7 @@
Name="VCLinkerTool" 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" 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" LinkIncremental="1"
DelayLoadDLLs="" DelayLoadDLLs="lua51.dll"
GenerateDebugInformation="true" GenerateDebugInformation="true"
SubSystem="2" SubSystem="2"
OptimizeReferences="2" OptimizeReferences="2"
@ -325,6 +326,7 @@
Name="VCLinkerTool" Name="VCLinkerTool"
AdditionalDependencies="dxguid.lib winmm.lib dinput.lib ws2_32.lib ddraw.lib dsound.lib ../src/drivers/win/lua/x64/lua51.lib" AdditionalDependencies="dxguid.lib winmm.lib dinput.lib ws2_32.lib ddraw.lib dsound.lib ../src/drivers/win/lua/x64/lua51.lib"
LinkIncremental="1" LinkIncremental="1"
DelayLoadDLLs="lua51.dll"
GenerateDebugInformation="true" GenerateDebugInformation="true"
SubSystem="2" SubSystem="2"
OptimizeReferences="2" OptimizeReferences="2"