test dll changes

This commit is contained in:
Jettford
2024-12-04 18:53:04 +00:00
parent 80d3baa886
commit 983a5ec634
22 changed files with 522 additions and 9 deletions

View File

@@ -4,7 +4,13 @@ set(DCHATSERVER_SOURCES
"PlayerContainer.cpp"
)
add_executable(ChatServer "ChatServer.cpp")
if (WIN32 AND LOCAL_SERVER)
add_library(ChatServer SHARED "ChatServer.cpp")
else()
add_executable(ChatServer "ChatServer.cpp")
endif()
target_include_directories(ChatServer PRIVATE "${PROJECT_SOURCE_DIR}/dChatFilter")
add_compile_definitions(ChatServer PRIVATE PROJECT_VERSION="\"${PROJECT_VERSION}\"")

View File

@@ -41,7 +41,7 @@ namespace Game {
void HandlePacket(Packet* packet);
int main(int argc, char** argv) {
int start(int argc, char** argv) {
constexpr uint32_t chatFramerate = mediumFramerate;
constexpr uint32_t chatFrameDelta = mediumFrameDelta;
Diagnostics::SetProcessName("Chat");
@@ -178,6 +178,43 @@ int main(int argc, char** argv) {
return EXIT_SUCCESS;
}
#ifdef LOCAL_SERVER
BOOL WINAPI DllMain(
HINSTANCE hinstDLL, // handle to DLL module
DWORD fdwReason, // reason for calling function
LPVOID lpvReserved) // reserved
{
// Perform actions based on the reason for calling.
switch (fdwReason) {
case DLL_PROCESS_ATTACH:
start(0, nullptr);
break;
case DLL_THREAD_ATTACH:
// Do thread-specific initialization.
break;
case DLL_THREAD_DETACH:
// Do thread-specific cleanup.
break;
case DLL_PROCESS_DETACH:
if (lpvReserved != nullptr) {
break; // do not do cleanup if process termination scenario
}
// Perform any necessary cleanup.
break;
}
return TRUE; // Successful DLL_PROCESS_ATTACH.
}
#else
int main(int argc, char** argv) {
return start(argc, argv);
}
#endif
void HandlePacket(Packet* packet) {
if (packet->length < 1) return;
if (packet->data[0] == ID_DISCONNECTION_NOTIFICATION || packet->data[0] == ID_CONNECTION_LOST) {