Error:"_TCHAR**"的實參與"char**"的形參不兼容

使用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得到了解決。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章