2016-08-22 123 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标准并不适用于其他编译器。

相关问题