我正在使用 CreateProcess
来调用 cl
和 link
来编译和链接另一个 C++ 程序(TestProg.cxx
) 到 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
你能告诉我如何修复它吗?谢谢
最佳答案
您缺少 CRT(C 运行时库)。例如,它提供了 __RTC_Shutdown
函数。当您链接它时,它通过包装在您的 DllMain
之前启动。这也将解决您的第一个链接错误。
关于c++ - 如何在运行时将 C++ 程序编译并链接到 DLL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9767840/