Plugin was non-autonomous: Build.cs referenced ../../../../Dependencies
(SDK installed externally) and copied dpwin64.dll into the project's
Binaries at build time, requiring manual DLL placement. Migrate to the
canonical UE third-party pattern so the plugin self-contains everything
and UBT handles staging.
- Embed minimal SDK files inside the plugin: dris.h, dpwin64.lib in
Source/ThirdParty/DinkeyPro/, dpwin64.dll in Binaries/ThirdParty/DinkeyPro/Win64/.
- Switch from runtime GetProcAddress to import-lib delay-load (better
protection: calls go through PE import table instead of named lookup).
- Load DLL via IPluginManager::FindPlugin()->GetBaseDir() — no more
ProjectDir-based path, no more manual File.Copy in Build.cs.
- Drop Win32 dead code; plugin is Win64-only per the .uplugin whitelist.
- Update .gitignore to keep Binaries/ThirdParty/ tracked while ignoring
build artifacts under Binaries/Win64/.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>