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

How to set entry point of a process created from CreateProcess

本文关键字:创建 入口 CreateProcess 何设置 设置      更新时间:2023-10-16

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

/Od /nologo /Fo /RTC /w /Zc /EHsc /IINCLUDE /ILIB /IPATH 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对我来说是新的。

感谢

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

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

/ENTRY(入口点符号)

您将得到类似于:cl.exe /ENTRY:DllMain ...的内容,其中DllMain将是源代码中的入口点函数。