c++ - 为什么控制台 C++ 程序在 Visual Studio 中具有不同的起始代码?

标签 c++ visual-studio-2013

#include "stdafx.h"


int _tmain(int argc, _TCHAR* argv[])
{
    return 0;
}

我还是C++的初学者,但我很好奇为什么一定要包含stdafx.h库,为什么main函数和其他IDE不一样?

最佳答案

"stdafx.h" 文件是用于预编译 header 的文件。如果你愿意,你可以删除它,直接包含所有头文件,并在你的项目选项中关闭预编译头文件,它仍然可以工作。它只会更慢。

_tmain_TCHAR 是扩展为 maincharwmain 的宏wchar_t,具体取决于您的项目选项中是否启用了 Unicode。标准 C++ 只有一个 int main(int argc, char *argv[]) 声明,并且不支持采用 wchar_t 的任何形式,因此您需要特定于实现的扩展以使其正常工作。如果需要,如果您不想或不需要在命令行参数中使用 Unicode,则可以编写 int main(int argc, char *argv[])。即使使用该原型(prototype)或 int main(void),您也可以使用 GetCommandLineW 以宽字符形式获取命令行参数。

关于c++ - 为什么控制台 C++ 程序在 Visual Studio 中具有不同的起始代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29327256/

相关文章:

.net - SQL Server 数据库项目在 VS 2013 中不兼容

visual-studio-2013 - 如何忽略我的 Windows 应用商店应用程序中的 MSTest 错误消息?

c++ - 正式包含库时链接器错误 : unresolved symbol,

c++ - 如何在 long 变量中保留小时、分钟、秒?

c++ - 为什么纯虚机制不考虑继承函数?

c++ - 关键字 "this"的实际含义是什么?

c++ - 将 new 运算符与对象的非默认构造函数一起使用

c++ - 什么 SAFESEH :NO option actually do

c++ - 枚举类的C样式强制转换为基础类型char的引用

c# - “逆向工程”模型优先 - 删除表和列前缀