Как передать std :: string в glShaderSource?

У меня есть следующий код:

glShaderSource(shader, 1, (const char **)data.c_str(), NULL);

Но это приводит к сбою моей программы. Как преобразовать std :: string в const char ** ? Я также пробовал (const char **) & , но там говорилось, что «требуется l-значение», чего я не понимаю. Он отлично работает, когда я использую этот код:

const char *data = "some code";
glShaderSource(shader, 1, &data, NULL);

Но я не могу заставить его работать напрямую из std :: string . Я мог бы выделить для него новый массив char , но это плохой код.

Я также пробовал с const GLchar , но, очевидно, это не имеет никакого значения.

28
задан Null 6 July 2015 в 19:57
поделиться