我有以下代码:
glShaderSource(shader, 1, (const char **)data.c_str(), NULL);
但这会使我的程序崩溃。如何将 std::string
转换为 const char **
?
我也试过 (const char **)&
但它说“需要左值”,我不明白。当我使用此代码时它工作正常:
const char *data = "some code";
glShaderSource(shader, 1, &data, NULL);
但我不能直接从 std::string
让它工作。我可以为它分配一个新的 char
数组,但这不是很好的代码。
我也试过 const GLchar
但显然没有区别。
最佳答案
data.c_str()
返回一个 const char*
,所以这样做:
const char *c_str = data.c_str();
glShaderSource(shader, 1, &c_str, NULL);
关于c++ - 如何将 std::string 传递给 glShaderSource?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6047527/