Visual Studio 中的空项目和非空项目有什么区别

What is difference between empty and not empty projects in visual studio?

本文关键字:项目有 什么 区别 项目 Studio Visual      更新时间:2023-10-16

我想知道Visual Studio中的空项目和非空(添加了stdafx文件(项目之间的区别。stdafx.cpp/h 文件中有什么?

为什么在该文件中定义 _tmain(( 而不是 main(( ?

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

在旧书中,我发现这样的代码。

int WINAPI _tWinMain(HINSTANCE hinstExe, HINSTANCE, PTSTR pszCmdLine, int),

我应该在哪里编写该代码以强制它工作?

(对不起英语不好((()

一个问题有很多问题。

1.( 空项目和非空项目之间没有真正的区别。据我所知,预编译的标头在空项目中是关闭的。2.( Stdafx.H被微软用于标准包含。它还充当预编译标头的单个包含。如果使用预编译标头,则必须包含 stdafx.h。我在这里解释的细节:https://stackoverflow.com/a/18685377/1922748

3.( 默认情况下,Microsoft使用 UNICODE 字符串,它们使用 16 位而不是 8 位。字符始终是 8 位,因此微软为此定义了宏。如果使用_UNICODE编译它(请参阅设置页面(,则宏是

#define THCAR short

使用"多个字节"是

#define TCHAR char

主和_tmain也是如此

4.(这不是旧书,而是不同的项目。

_tWinMain

是基于窗口的应用程序(如您正在使用的浏览器(的入口点。

_tmain

是控制台应用程序的入口点。

  1. 空项目没有自动写入的源文件或头文件。其他"非空"项目会自动为您生成一些骨架代码 - 尝试看看您得到了什么。
  2. stdafx文件是预编译的 - 详细信息在这里
  3. _t前缀映射到您正在使用的字符编码类型。它是一个微软扩展。看这里 本质上,它在 unicode 的wmainmain之间切换。