現在、C#アプリケーションで次の方法でdllから関数をインポートしています。
[DllImport("C:\\File.dll")]
public static extern int SomeMethod(int A);
私のdllファイルはC++で書かれています。このメソッドは、dllの.defファイルでも定義されています。現在、このメソッドが最初の試行で呼び出されるたびに、他のいくつかのメソッドが呼び出されます。これらのメソッドは、このメソッドの根拠を設定します。ただし、これらのメソッドを呼び出す必要があるのは1回だけです。これらのメソッドが二度と呼び出されることはありません/dllファイルがロードされるとすぐにメソッドのグループ(初期化子)を呼び出す方法があることを知りたかったのです。dllコンストラクターとして何かありますか?
dllmain.cppにこのようなものがあり、そこに何かを入力してこのタスクを実行できます
// dllmain.cpp : Defines the entry point for the DLL application.
#include "stdafx.h"
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}