Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/406.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ glutBitmapString/glutStrokeString似乎需要常量unsigned char*-字符串don';行不通_C++_Glut_Freeglut - Fatal编程技术网

C++ glutBitmapString/glutStrokeString似乎需要常量unsigned char*-字符串don';行不通

C++ glutBitmapString/glutStrokeString似乎需要常量unsigned char*-字符串don';行不通,c++,glut,freeglut,C++,Glut,Freeglut,Ubuntu 11.04、G++、freeglut和GLUT 我一点也不明白。下面是我得到的错误: whatever.cc:315:59: error: cannot convert ‘std::string’ to ‘const unsigned char*’ for argument ‘2’ to ‘void glutStrokeString(void*, const unsigned char*)’ 如果我尝试使用位图字符串: whatever.cc:315:59: error: can

Ubuntu 11.04、G++、freeglut和GLUT

我一点也不明白。下面是我得到的错误:

whatever.cc:315:59: error: cannot convert ‘std::string’ to ‘const unsigned char*’ for argument ‘2’ to ‘void glutStrokeString(void*, const unsigned char*)’
如果我尝试使用位图字符串:

whatever.cc:315:59: error: cannot convert ‘std::string’ to ‘const unsigned char*’ for argument ‘2’ to ‘void glutBitmapString(void*, const unsigned char*)’
这是相关的代码(我想)

(此外,我还尝试在其中留下一个直接字符串,如“要渲染的文本”。没有骰子。)


我很困惑。这是我的第一个问题,据我记忆所及,所以,如果没有很好地整理好,我表示歉意。我将提供我能提供的任何额外信息。

没有将
std::string
自动转换为
char const*
。但是,您可以使用
std::string::c_str()
std::string
中获取
char常量*

e、 g.
glutBitmapString(GLUT_位图_HELVETICA_18,scoreString.c_str())

注意:您链接到的答案没有说您可以使用
std::string
。它给出的示例(
glutBitmapString(GLUT\u BITMAP\u HELVETICA_18,“要呈现的文本”);
)使用字符串文字,它是字符的数组,而不是字符串


请记住,OpenGL是一个C库,
std::string
在C中不存在。

我会试试,谢谢!编辑:不,仍然得到这个错误。出于某种原因,它需要常量unsigned char*。无论什么。cc:315:67:错误:从“const char *”到“const unchar char”的无效转换,只需将它转换为:<代码>(const unChalchar)ScistSouth.cScript()/Cord>我明白了使用C库使用C++的含义。这是我第一次独自使用OpenGL,所以我很缺乏经验。铸造该死,这是我第一次没试过选角。唉。无论如何,非常感谢。你帮我省了不少痛苦。:)这是少数几个“强制关闭编译器”是正确做法的时候之一。但大多数时候,不要这样做(尤其是对于函数指针)。
scoreStream << "Score: " << score << "\0";
scoreString = scoreStream.str();

// ...in another method:

glRasterPos2i(0, 0);
glColor4f(0.0f, 0.0f, 0.0f, 1.0f);
glutBitmapString(GLUT_BITMAP_HELVETICA_18, scoreString);
// Draw blue text at screen coordinates (100, 120), where (0, 0) is the top-left of the
// screen in an 18-point Helvetica font
glRasterPos2i(100, 120);
glColor4f(0.0f, 0.0f, 1.0f, 1.0f);
glutBitmapString(GLUT_BITMAP_HELVETICA_18, "text to render");
whatever.cc:315:64: error: invalid conversion from ‘const char*’ to ‘const unsigned char*’