2013-10-05 96 views
1

我想知道visual studio中的空和非空(stdafx文件添加)项目之间的区别。什么是在stdafx.cpp/h文件?visual studio中的空白和非空项目有什么区别?

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

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

在旧书我觉得这样的代码this`

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

,我应该写代码,迫使它的工作?

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

+0

这是三个问题,一次只问一个问题。 –

+0

尝试每个项目类型,看看它是什么。并考虑购买一本新书,或者坚持使用控制台应用程序开始。 – doctorlove

回答

2

很多问题的一个问题。

1.)空白项目和非空白项目之间没有真正的不同。据我所知,预编译头文件在空项目中关闭。 2.)stdafx.h被microsoft用于标准包含。它也作为预编译头文件的单个包含。如果使用预编译头文件,则必须包含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 

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

+0

+1。我没有看到所有其他问题。 – doctorlove

2
  1. 空项目没有自动编写的源文件或头文件中的其他“非空”项目自动生成一些对你的骨骼码 - 试试,看看你会得到什么。
  2. stdafx文件预编译 - 细节here
  3. _t前缀映射到人物的编码类型所使用。这是一个微软的扩展。请参阅here本质上,它在unicode的wmainmain之间切换。
+0

为更好的链接+1 :-) –

相关问题