Releases: rdev-cpp/IL2CPP-Auto-Resolver
v1.2.1
v1.2.0
Fixed
- Critical: Race condition in module initialization
- Critical: Thread safety issues in GetModule()
Added
- Fallback to UnityPlayer.dll for broader compatibility
- Proper double-checked locking for cache
- Atomic operations with correct memory ordering
Improved
- Code simplicity (removed over-engineering)
- Performance (no unnecessary locks)
- Reliability (full thread safety)
Compatibility
- C++17 or higher
- Windows only (uses WinAPI)
- IL2CPP Unity games (GameAssembly.dll / UnityPlayer.dll)
v1.1.0
Added:
-
Lazy Loading: Removed the heavy CacheAllFunctions scan at startup. Exports are now resolved via GetProcAddress and cached only on demand (when requested). This drastically improves injection speed and reduces memory usage.
-
Thread Safety: Implemented std::shared_mutex (Read-Write Lock). The resolver is now fully thread-safe, allowing multiple threads to query addresses simultaneously without race conditions or game crashes.
-
True Header-Only: Modernized to C++17. Utilized inline static variables to fix linker errors (e.g., LNK2005/LNK1169 - multiple definition) when including the header in multiple source files.
-
Auto-Resolution: Refactored initialization. The resolver automatically acquires the GameAssembly.dll handle upon the first call, making manual initialization optional.
-
⚠️ Project must be compiled with C++17 standard (/std:c++17) or higher.