如何在运行时编译C++程序并将其链接到DLL中

How to compile and link a C++ program into a DLL in runtime

本文关键字:链接 DLL 程序 运行时 编译 C++      更新时间:2023-10-16

我正在使用CreateProcess调用cllink来编译另一个C++程序(TestProg.cxx)并将其链接到DLL中。

TestProg.cxx包含以下DllMain功能:

extern "C" BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{
    return TRUE;
}

并且我将CCD_ 7添加到链接选项中。

我得到以下链接错误:

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之前通过包装它来启动。这也会解决你的第一个链接错误。