diff --git a/GeneralsMD/Code/GameEngine/Include/GameNetwork/GeneralsOnline/NextGenTransport.h b/GeneralsMD/Code/GameEngine/Include/GameNetwork/GeneralsOnline/NextGenTransport.h index 89b4ab9268c..fbc9e8e4199 100644 --- a/GeneralsMD/Code/GameEngine/Include/GameNetwork/GeneralsOnline/NextGenTransport.h +++ b/GeneralsMD/Code/GameEngine/Include/GameNetwork/GeneralsOnline/NextGenTransport.h @@ -9,14 +9,14 @@ #include "GameNetwork/GeneralsOnline/Vendor/ValveNetworkingSockets/steam/isteamnetworkingmessages.h" -#pragma comment(lib, "ValveNetworkingSockets/GameNetworkingSockets.lib") -#pragma comment(lib, "ValveNetworkingSockets/abseil_dll.lib") -#pragma comment(lib, "ValveNetworkingSockets/libcrypto.lib") -#pragma comment(lib, "ValveNetworkingSockets/libprotobuf.lib") -#pragma comment(lib, "ValveNetworkingSockets/libssl.lib") -#pragma comment(lib, "ValveNetworkingSockets/steamwebrtc.lib") -#pragma comment(lib, "ValveNetworkingSockets/webrtc-lite.lib") -#pragma comment(lib, "Secur32.lib") +// Library linking moved to NextGenTransport.cpp to prevent early DLL loading during static initialization +/* Removed - moved to .cpp */ +/* Removed - moved to .cpp */ +/* Removed - moved to .cpp */ +/* Removed - moved to .cpp */ +/* Removed - moved to .cpp */ +/* Removed - moved to .cpp */ +/* Removed - moved to .cpp */ // it to be a MemoryPoolObject (srj) class NextGenTransport : public Transport //: public MemoryPoolObject @@ -42,4 +42,4 @@ class NextGenTransport : public Transport //: public MemoryPoolObject private: -}; +}; diff --git a/GeneralsMD/Code/GameEngine/Source/GameNetwork/GeneralsOnline/NextGenTransport.cpp b/GeneralsMD/Code/GameEngine/Source/GameNetwork/GeneralsOnline/NextGenTransport.cpp index 1f96589d28c..32f9332c8d1 100644 --- a/GeneralsMD/Code/GameEngine/Source/GameNetwork/GeneralsOnline/NextGenTransport.cpp +++ b/GeneralsMD/Code/GameEngine/Source/GameNetwork/GeneralsOnline/NextGenTransport.cpp @@ -6,6 +6,19 @@ #include "GameNetwork/GeneralsOnline/ngmp_include.h" #include "GameNetwork/GeneralsOnline/ngmp_interfaces.h" + +// Library linking directives moved here from NextGenTransport.h to prevent early DLL loading +// during static initialization. This ensures libraries are only loaded when NextGenTransport +// is actually instantiated (after the Windows application window has been created). +#pragma comment(lib, "ValveNetworkingSockets/GameNetworkingSockets.lib") +#pragma comment(lib, "ValveNetworkingSockets/abseil_dll.lib") +#pragma comment(lib, "ValveNetworkingSockets/libcrypto.lib") +#pragma comment(lib, "ValveNetworkingSockets/libprotobuf.lib") +#pragma comment(lib, "ValveNetworkingSockets/libssl.lib") +#pragma comment(lib, "ValveNetworkingSockets/steamwebrtc.lib") +#pragma comment(lib, "ValveNetworkingSockets/webrtc-lite.lib") +#pragma comment(lib, "Secur32.lib") + #ifdef _INTERNAL // for occasional debugging... @@ -264,4 +277,4 @@ Bool NextGenTransport::queueSend(UnsignedInt addr, UnsignedShort port, const Uns } } return false; -} +}