私は制御できないC++プログラムによってロードされているD DLLを持っています。プログラムLoadLibrarys私のDLLとGetProcAddressを使用して1つの引数(ポインタ)を取る "extension_load"という名前の関数を見つける。私のDのDLLでは私が持っている:エクスポートされた関数シンボル名のマングリング
extern (C) int extension_load(void* ptr) {
return 0;
}
そして、この名前がextension_loadとしてエクスポートする必要がありますが、GetProcAddressが、それを見つけることができないので、それは、4 @ extension_loadとしてエクスポートされています。名前を変えずにplain_extensionにするにはどうすればいいですか?
GetProcAddress *は*関数を見つけられませんか? 'extension_load @ 4 'はどこから来たのですか(つまり、この名前だったのはどうでしたか) – jpalecek
@jpalecek、申し訳ありませんが、私はそれが暗示されたと思いました。 GetProcAddressはextension_loadの名前で関数を見つけることができません。 @ 4はすべての引数の長さから来ています。extension_load @ 4はデバッガでプロセスを開き、メモリ内の文字列をextension_load @ 4に変更すると、現在のところexportされていることがわかります見つかった。 –