如何设置从CreateProcess创建的进程的入口点

时间:2012-03-15 12:26:55

标签: c++ visual-studio linker-errors createprocess entry-point

我正在使用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对我来说是新的。

由于

2 个答案:

答案 0 :(得分:2)

使用CreateProcess()运行编译器时出错并不是错误,编译器错误地告诉您TestProg.cxx没有main()函数。 (或DllMain(),因为您似乎正在构建DLL。)

答案 1 :(得分:0)

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

/ENTRY (Entry-Point Symbol)

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