finally fix laptop build
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
#include "bx/filepath.h"
|
||||
#include <cstdlib>
|
||||
#include <cwchar>
|
||||
#include <fstream>
|
||||
@@ -14,9 +15,7 @@
|
||||
#include "Shared.h"
|
||||
#include "Window.h"
|
||||
|
||||
// #define VISUAL_STUDIO
|
||||
|
||||
#ifdef VISUAL_STUDIO
|
||||
#ifdef _MSC_VER
|
||||
constexpr const char* DLLPath = "PuzGame.dll";
|
||||
constexpr const wchar_t* DLLWatch = L"PuzGame2.dll";
|
||||
#else
|
||||
@@ -180,40 +179,52 @@ bool ReloadDLL()
|
||||
{
|
||||
FreeLibrary(DevData.GameLib);
|
||||
}
|
||||
#ifdef VISUAL_STUDIO
|
||||
if (!CopyFile("PuzGame2.dll", "PuzGame.dll", false))
|
||||
{
|
||||
printf("Failed to copy game DLL!\n");
|
||||
return false;
|
||||
}
|
||||
|
||||
char exePath[1024];
|
||||
GetModuleFileName(nullptr, exePath, BX_COUNTOF(exePath));
|
||||
bx::FilePath exeFilePath{exePath};
|
||||
bx::FilePath exeDir{exeFilePath.getPath()};
|
||||
bx::FilePath libPath = exeDir;
|
||||
#ifdef _MSC_VER
|
||||
libPath.join("PuzGame.dll");
|
||||
#else
|
||||
if (!CopyFile("cmake-build\\libPuzGame2.dll", "cmake-build\\libPuzGame.dll", false))
|
||||
libPath.join("libPuzGame.dll");
|
||||
#endif
|
||||
bx::FilePath lib2Path = exeDir;
|
||||
#ifdef _MSC_VER
|
||||
lib2Path.join("PuzGame2.dll");
|
||||
#else
|
||||
lib2Path.join("libPuzGame2.dll");
|
||||
#endif
|
||||
if (!CopyFile(lib2Path.getCPtr(), libPath.getCPtr(), false))
|
||||
{
|
||||
printf("Failed to copy game DLL!\n");
|
||||
DWORD err = GetLastError();
|
||||
printf("[%lu] Failed to copy game DLL from %s to %s!\n", err, libPath.getCPtr(), lib2Path.getCPtr());
|
||||
return false;
|
||||
}
|
||||
#endif
|
||||
|
||||
HMODULE gameLibReloaded = LoadLibraryEx(DLLPath, NULL, 0);
|
||||
if (gameLibReloaded == NULL)
|
||||
{
|
||||
printf("Failed to load game DLL from %s!\n", DLLPath);
|
||||
DWORD err = GetLastError();
|
||||
printf("[%lu] Failed to load game DLL from %s!\n", err, DLLPath);
|
||||
return false;
|
||||
}
|
||||
DevData.GameLib = gameLibReloaded;
|
||||
|
||||
#ifdef VISUAL_STUDIO
|
||||
Startup StartupReloaded = (Startup)GetProcAddress(DevData.GameLib, "?Setup@Game@@YAXPEAX@Z");
|
||||
#ifdef _MSC_VER
|
||||
Startup StartupReloaded = (Startup)GetProcAddress(DevData.GameLib, "?Setup@Game@@YAXAEAUSharedData@@@Z");
|
||||
#else
|
||||
Startup StartupReloaded = (Startup)GetProcAddress(DevData.GameLib, "_ZN4Game5SetupER10SharedData");
|
||||
#endif
|
||||
if (StartupReloaded == NULL)
|
||||
{
|
||||
printf("Failed to load startup function from game DLL!\n");
|
||||
DWORD err = GetLastError();
|
||||
printf("[%lu] Failed to load startup function from game DLL!\n", err);
|
||||
return false;
|
||||
}
|
||||
|
||||
#ifdef VISUAL_STUDIO
|
||||
#ifdef _MSC_VER
|
||||
Update UpdateReloaded = (Update)GetProcAddress(DevData.GameLib, "?Update@Game@@YAXXZ");
|
||||
#else
|
||||
Update UpdateReloaded = (Update)GetProcAddress(DevData.GameLib, "_ZN4Game6UpdateEv");
|
||||
@@ -224,7 +235,7 @@ bool ReloadDLL()
|
||||
return false;
|
||||
}
|
||||
|
||||
#ifdef VISUAL_STUDIO
|
||||
#ifdef _MSC_VER
|
||||
Shutdown ShutdownReloaded = (Shutdown)GetProcAddress(DevData.GameLib, "?Shutdown@Game@@YAXXZ");
|
||||
#else
|
||||
Shutdown ShutdownReloaded = (Shutdown)GetProcAddress(DevData.GameLib, "_ZN4Game8ShutdownEv");
|
||||
|
||||
Reference in New Issue
Block a user