0

我正在使用 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

我究竟做错了什么?我在网上搜索了最后 1/2 天的答案,但没有找到。使用 Windows API 对我来说是新的。

谢谢

4

2 回答 2

2

这不是CreateProcess()用于运行编译器的错误,而是编译器的错误,告诉您您TestProg.cxx没有main()功能。(或者DllMain(),因为您似乎正在构建一个 DLL。)

于 2012-03-15T12:33:09.040 回答
0

您有链接器错误,因此链接器无法为您构建二进制文件。入口点可以通过/ENTRY命令行参数提供,详见 MSDN:

/ENTRY(入口点符号)

您将拥有类似的内容:cl.exe /ENTRY:DllMain ...其中 DllMain 将是您在源代码中的入口点函数。

于 2012-03-15T12:32:34.530 回答