CreateProcess
を使用して、cl
とlink
を呼び出して、別のC++プログラム(TestProg.cxx
)をコンパイルしてDLLにリンクします。実行時にC++プログラムをDLLにコンパイルする方法
TestProg.cxx
は、以下のDllMain
機能が含まれます。
extern "C" BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{
return TRUE;
}
を、私は、リンクオプションに/Entry:DllMain
を追加しました。
私は、次のリンクエラーを取得:
LINK : error LNK2001: unresolved external symbol _DllMain
main.obj : error LNK2001: unresolved external symbol __RTC_Shutdown
main.obj : error LNK2001: unresolved external symbol __RTC_InitBase
main.dll : fatal error LNK1120: 3 unresolved externals
あなたは私がそれを修正する方法を教えてくださいもらえますか?ありがとう
私の推測では、C++のネームマングリングに問題があることがわかります。 –
ありそうもない。 'extern" C "'は、C++の名前のマングリングではなく、Cが必要であることを示す正しい方法です。しかし、Cでも名前のマングリングがあります。あなたが先頭の '_' – MSalters
から感謝しています。 –