2016-08-22 156 views
3

當我沒有IDE使用GCC時,我只需要創建* .h文件和* .cpp文件。Visual Studio 2005中的空項目和win32控制檯項目之間的差異

但是在VS2005中,創建空項目有兩種方式,第一種方式是使用「general - > Empty Project」,第二種方式是「Win32 - > Win32 console project - > next - > empty project」。

官方example建議第二種方式,而我preffer第一種方式。

那麼他們之間有什麼不同呢?

在win32控制檯項目中,「subsystem」是「console」,「Character Set」是「unicode」。但是在空項目中,「子系統」是「NoSet」,「字符集」是「多字節」。這是什麼意思?

回答

3

「空項目」就是這樣:空。它根本沒有具體的設置,你需要自己設置。對於一個空的「控制檯項目」,IDE爲控制檯項目設置好標誌和設置的項目,但不添加任何文件。

如果你想要一個控制檯程序,那麼你肯定應該使用控制檯項目類型。

+0

謝謝。這是否意味着當我使用「通用 - >空項目」,然後添加test.h和test.cpp文件,然後構建就像gcc的方式,它會出錯?我會給它一個測試。 –

+0

當我使用上述操作時,效果很好,所以我仍然感到困惑。但我會接受你的建議,因爲「win32 console project」是一般的方法。 –

+0

@jiahilegass這很大程度上取決於你在做什麼,我猜。如果它適合你,那麼很好,但請注意,可能需要通過控制檯項目模板設置的某些標誌和設置才能使用Windows API(它比實際的GUI更多地使用它)來完成任何工作。 –

2

要添加到@JoachimPileborg答案,重要的是項目子系統規範。對於VS2005,有一個目標子系統的列表:https://msdn.microsoft.com/en-us/library/fcc1zstk(v=vs.80).aspx

對於空項目,它不會被設置。

控制檯,它會設置爲控制檯

我建議將其設置爲Win32控制檯項目,但除去預編譯頭標誌,並使其空

+0

感謝您的幫助。我更喜歡它,因爲預編譯頭文件總是讓我感到困惑。但我也會嘗試自己學習一些關於它的知識。 –

0

在控制檯項目中的#include不是ANSI標準並不適用於其他編譯器。

相關問題