Using EOS SDK on Windows

在Windows上实现EOS SDK的相关参考信息

阅读时间1分钟

为Window项目接入SDK之前,请务必查阅通用指南和参考了解更多详情。

在Windows上链接

Windows 要求将链接时间库和加载时间库都添加至项目的链接命令。

  • 链接时库对于64位应用是 EOSSDK-Win64-Shipping.lib,对于32位应用是 EOSSDK-Win32-Shipping.lib
  • 运行时库于64位应用是 EOSSDK-Win64-Shipping.dll,对于32位应用是 EOSSDK-Win32-Shipping.dll

链接期间使用 /DELAYDLL 防止库在启动时自动加载。详情请阅读下文中 加载 一节。

在Windows上加载

若未使用 /DELAYDLL 进行链接,则EOS SDK将在应用程序启动时自动加载。若使用 /DELAYDLL,有两种方式加载DLL。

标准用法为完全实现的 __delayLoadHelper2 函数。此用法可在首次调用EOS SDK时自动加载DLL。Microsoft在文件 delayhlp.cpp 中提供使用MSVC工具链的实现。可提供完全空白的实现,防止自动加载DLL,类似于:

extern "C"
FARPROC WINAPI
__delayLoadHelper2(
PCImgDelayDescr pidd,
FARPROC * ppfnIATEntry
)
{
return NULL;
}

也可使用以下代码显式加载模块:

HMODULE Module = ::LoadLibrary(Filename);

其中 Filename 是EOS SDK DLL文件的路径。若DLL在游戏工作目录中,则文件名不必为完整路径。对于64位Windows而言,该文件名很可能类似于 EOSSDK-Win64-Shipping.dll

卸载模块

要卸载模块,可使用:

::FreeLibrary(Module);

其中Module即为 ::LoadLibrary 返回的值。