2

摘要:我正在尝试在 Windows 8 上的 Visual Studio 2012 中编译 NVIDIA SDK 应用程序,但收到错误消息:FXC : error X3501: 'main': entrypoint not found. 我是 Windows 编程的新手,并试图弄清楚这意味着什么。

详情

我正在尝试编译Multi-View Soft Shadows NVIDIA SDK 应用程序。下载后我有一个 vcproj 文件。我在 Windows 8 上的 Visual Studio 2012 中打开了它,在转换过程中出现了一些警告,但它似乎正确打开了项目。

但是,当我构建项目时,出现以下错误:FXC : error X3501: 'main': entrypoint not found.

起初我以为这可能是因为main应用程序中没有功能。但后来我发现wWinMain我猜应该main在某些 Windows 应用程序中替换它。所以我认为源代码是正确的,但也许 Visual Studio 2012 的某些设置需要更改。但是搜索该错误消息并没有回答我的问题,所以我想知道是否有人可以解释错误的原因是什么以及关于如何解决它的任何建议。

4

2 回答 2

4

这不是 C++ 问题...着色器编译器 fxc.exe 正在您的着色器代码中查找名为 main 的函数。它没有找到它并因此引发错误。右键单击您的 HLSL 文件并转到属性 -> 配置属性 -> 常规。应该有一个项目类型字段。将其从 HLSL 编译器更改为不参与构建。这应该可以防止 HLSL 编译器出现并给您这些错误。

于 2013-08-13T17:43:13.517 回答
1

您需要(在项目属性 -> 链接器 -> 系统 -> 子系统中)将应用程序的子系统从 CONSOLE更改为WINDOWS. 之后,入口点将从 Standard C/C++ 更改main为 Windows-specific wWinMain

于 2013-06-18T21:06:19.780 回答