Added single instance lock and release error system

This commit is contained in:
Grayson Riffe (Laptop) 2021-08-18 12:22:57 -05:00
parent c3599ed150
commit c63fd0ec88
2 changed files with 15 additions and 9 deletions

View File

@ -103,6 +103,7 @@ namespace nf {
} }
void Application::registerWindowClass() { void Application::registerWindowClass() {
if (!FindWindow(L"NFClass", NULL)) {
m_wclassName = L"NFClass"; m_wclassName = L"NFClass";
WNDCLASS wclass = { }; WNDCLASS wclass = { };
wclass.lpszClassName = m_wclassName; wclass.lpszClassName = m_wclassName;
@ -112,6 +113,10 @@ namespace nf {
wclass.lpfnWndProc = Application::WindowProc; wclass.lpfnWndProc = Application::WindowProc;
RegisterClass(&wclass); RegisterClass(&wclass);
} }
else {
Error("Cannot run two NF applications at once.");
}
}
void Application::toggleFullscreen() { void Application::toggleFullscreen() {
DWORD wndStyle = GetWindowLong(m_window, GWL_STYLE); DWORD wndStyle = GetWindowLong(m_window, GWL_STYLE);

View File

@ -28,7 +28,8 @@ DebugBreak();
#else #else
#define DEBUGINIT #define DEBUGINIT
#define Log(x) #define Log(x)
#define Error(x) #define Error(x) MessageBox(FindWindow(L"NFClass", NULL), toWide(x), L"NF Engine Error", MB_OK | MB_ICONERROR);\
std::exit(-1)
#endif #endif
const wchar_t* toWide(const char* in); const wchar_t* toWide(const char* in);