【问题标题】:main vs. wWinMainmain 与 wWinMain
【发布时间】:2013-08-14 01:43:13
【问题描述】:

总结:我正在尝试在 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,我猜它应该在某些Windows 应用程序中替换main。所以我认为源代码是正确的,但也许 Visual Studio 2012 的某些设置需要更改。但是搜索该错误消息并没有回答我的问题,所以我想知道是否有人可以解释错误的原因是什么以及有关如何解决它的任何建议。

【问题讨论】:

    标签: winapi nvidia directx-11 direct3d11


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 感谢您的建议,但已设置为Windows (/SUBSYSTEM:WINDOWS)
      猜你喜欢
      • 1970-01-01
      • 2011-04-04
      • 1970-01-01
      • 2010-12-20
      • 2022-07-23
      • 2016-01-05
      • 2012-03-10
      • 1970-01-01
      • 2016-11-19
      相关资源
      最近更新 更多