2013-06-18 57 views
2

摘要:我試圖在Windows 8上編譯Visual Studio 2012中的NVIDIA SDK應用程序,並且收到錯誤消息:FXC : error X3501: 'main': entrypoint not found。我不熟悉Windows編程,並試圖弄清楚這意味着什麼。main與wWinMain

詳細

我試圖編譯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中的某些設置。但是,搜索該錯誤消息還沒有回答我的問題,所以我想知道是否有人可以解釋錯誤的原因是什麼以及關於如何修復它的任何建議。

回答

4

這不是一個C++問題......着色器編譯器fxc.exe正在着色器代碼中尋找名爲main的函數。它沒有找到它並因此導致錯誤。右鍵單擊您的HLSL文件並轉到屬性 - >配置屬性 - >常規。應該有一個項目類型字段。將其從HLSL編譯器更改爲不參與構建。這應該可以防止HLSL編譯器出現併爲您提供這些錯誤。

1

您需要將應用程序的子系統從CONSOLE更改爲WINDOWS(在項目屬性 - >鏈接器 - >系統 - >子系統中)。之後,入口點將從標準C/C++ main更改爲特定於Windows的wWinMain

+0

感謝您的建議,但它已被設置爲'Windows(/ SUBSYSTEM:WINDOWS)' –