Windows で EOS SDK を使用する

Windows で EOS SDK を実装するための参考情報です。

Windows で SDK を実装する前に、プラットフォーム実装のための 一般的なガイドラインとリファレンス を再度ご確認ください。

Windows でリンクする

Windows では、リンクタイム ライブラリとロードタイム ライブラリの両方を、プロジェクトのリンク コマンドに追加する必要があります。

  • リンクタイム ライブラリは「EOSSDK.lib」です

  • ランタイム ライブラリは「EOSSDK.dll」です

リンク中に /DELAYDLL を使用して、起動時にライブラリを自動でロードしないようにします。詳細は以下の「Windows でロードする」セクションを参照してください。

Windows でロードする

リンク時に /DELAYDLL を使用しない場合は、EOS SDK をアプリケーションの起動時に自動でロードします。/DELAYDLL を使用する場合、2 つの方法で 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 がある場合、この Filename にフルパスを指定する必要はありません。これは 64 ビット版 Windows の「EOSSDK-Win64-Shipping.dll」と同様です。

モジュールをアンロードする

モジュールをアンロードするには、以下を使用します。

::FreeLibrary(Module);

Module は ::LoadLibrary から返される値です。