Я использую 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++ name mangling. Но даже C имеет название mangling, как вы можете видеть из ведущего '_' – MSalters
Прохладной информации, спасибо. –