Hm.CppInvokeの使い方

Hm.CppInvokeの「*.cpp」と「*.h」をコピー

PICTURE

あなたのプロジェクトで利用する

「*.cpp」と「*.h」をあなたのプロジェクトに取り込んで利用するだけです。

PICTURE

C++17以上の指定必須

C++17以上が必須です。C++20でももちろんOKです。

PICTURE

PICTURE

プリコンパイル済みヘッダーは「使わない」に

プリコンパイル済みヘッダーを利用したい場合は、ソースを適当にご自身で編集してください。

PICTURE

ポイント

HmCppInvoke.h

HmCppInvoke.h をインクルードして利用します。他のヘッダファイルはインクルード対象ではありません。

using namespace Hidemaru

using namespace Hidemaru」として名前空間を using するのが一般的な使用方法となるかと思います。

Hm.funcDllExport()

extern "C" __declspec(dllexport)といったような「秀丸から呼び出されるextern関数」の「一番最初の行」で、Hm.funcDllExport() を必ず付けてください。

DllMain

DllMainの記述を推奨します。DllMainが無くとも動作しますが、初ロード時に読み込みが遅くなる傾向があります。

dllmain.cpp
#include "HmCppInvoke.h"

using namespace Hidemaru;
using namespace std;

extern "C" __declspec(dllexport) THmNumber test() {
    Hm.funcDllExport();

    return 1;
}

BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpReserved)
{
    switch (fdwReason)
    {
    case DLL_PROCESS_ATTACH:
        break;

    case DLL_THREAD_ATTACH:
        break;

    case DLL_THREAD_DETACH:
        break;

    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}