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