![](/img/trans.png)
[英]Why would a C program compile and link with a C compiler against C++ libraries then SIGILL at runtime?
[英]How to compile and link a C++ program into a DLL in runtime
我正在使用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
之前开始。 这也将解决您的第一个链接错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.