使用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得到了解决。
时间: 2024-10-22 01:21:32