使用VS2010編寫自己的第一個openGL代碼遇到了這樣的問題
#include "stdafx.h" #include "glut.h" int _tmain(int argc, _TCHAR* argv[]) { glutInit(&argc,argv);//Error:"_TCHAR**"的實參與"char**"的形參不兼容 return 0; }
在網上搜索了一些解決方法,自己總結如下:
char是C語言標準數據類型,字符型,至於由幾個字節組成通常由編譯器決定,一般一個字節。
Windows爲了消除各編譯器的差別,重新定義了一些數據類型,char和tchar就是這樣。
CHAR爲單字節字符。還有個WCHAR爲Unicode字符,即不論中英文,每個字有兩個字節組成。
如果當前編譯方式爲ANSI(默認)方式,TCHAR等價於CHAR,如果爲Unicode方式,TCHAR等價於WCHAR。LPCSTR 相當於CONST CHAR * 和LPSTR 相當於CHAR *。
故我們可推測,此時編譯方式出現問題,因此我們設置一下編譯方式即可。
採用將編譯方式設置爲ANSI,項目->屬性->項目默認值->字符集,然後把UNICODE選成多字節,重新編譯,這樣我們就完成了設置,並且Error得到了解決。