2013-10-05 121 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 :-) –

相關問題