DLL に次のようなコードがあります。
int (*callback)(int a, int b);
void mainfunc()
{
callback(1, 2);
callback(3, 4);
}
C プログラムからこの DLL にアクセスするには、次のようにしました。
#include <windows.h>
int callback(int a, int b) {return a+b;}
int main()
{
HANDLE dll = LoadLibrary("test.dll");
*(void**)GetProcAddress(dll, "callback") = (void*)callback;
((void(*))GetProcAddress(dll, "mainfunc"))();
FreeLibrary(dll);
}
DLL は引き続き C コードですが、メイン プログラムは C# に切り替わりました。関数ポインタの扱い方 そのコードは C# ではどのようになりますか?