我正在使用CreateProcess来调用cl
来编译并将另一个C ++程序(TestProg.cxx
)链接到DLL中。我使用以下编译选项调用cl
:
/Od /nologo /Fo /RTC /w /Zc /EHsc /I\INCLUDE /I\LIB /I\PATH TestProg.cxx /DLL
电话:
if ( CreateProcess(full path to cl.exe, compilation options, NULL,NULL,FALSE,0, NULL,NULL,&si,&pi) )
{
//....
}
从VS工具提示符运行应用程序,我收到以下链接错误:
LINK : fatal error LNK1561: entry point must be defined
我做错了什么? 我在网上搜索了最后半天的答案,但没找到。使用Windows API对我来说是新的。
由于
答案 0 :(得分:2)
使用CreateProcess()
运行编译器时出错并不是错误,编译器错误地告诉您TestProg.cxx
没有main()
函数。 (或DllMain()
,因为您似乎正在构建DLL。)
答案 1 :(得分:0)
您有链接器错误,因此链接器无法为您构建二进制文件。可以通过/ENTRY
命令行参数提供入口点,有关详细信息,请参阅MSDN:
您将拥有类似:cl.exe /ENTRY:DllMain ...
的内容,其中DllMain将成为源代码中的入口点函数。