<i id='Ehg7E'><tr id='Ehg7E'><dt id='Ehg7E'><q id='Ehg7E'><span id='Ehg7E'><b id='Ehg7E'><form id='Ehg7E'><ins id='Ehg7E'></ins><ul id='Ehg7E'></ul><sub id='Ehg7E'></sub></form><legend id='Ehg7E'></legend><bdo id='Ehg7E'><pre id='Ehg7E'><center id='Ehg7E'></center></pre></bdo></b><th id='Ehg7E'></th></span></q></dt></tr></i><div id='Ehg7E'><tfoot id='Ehg7E'></tfoot><dl id='Ehg7E'><fieldset id='Ehg7E'></fieldset></dl></div>

<small id='Ehg7E'></small><noframes id='Ehg7E'>

        <tfoot id='Ehg7E'></tfoot><legend id='Ehg7E'><style id='Ehg7E'><dir id='Ehg7E'><q id='Ehg7E'></q></dir></style></legend>

        • <bdo id='Ehg7E'></bdo><ul id='Ehg7E'></ul>

        如何将 std::string 传递给 glShaderSource?

        时间:2023-09-18

          <i id='nM8FN'><tr id='nM8FN'><dt id='nM8FN'><q id='nM8FN'><span id='nM8FN'><b id='nM8FN'><form id='nM8FN'><ins id='nM8FN'></ins><ul id='nM8FN'></ul><sub id='nM8FN'></sub></form><legend id='nM8FN'></legend><bdo id='nM8FN'><pre id='nM8FN'><center id='nM8FN'></center></pre></bdo></b><th id='nM8FN'></th></span></q></dt></tr></i><div id='nM8FN'><tfoot id='nM8FN'></tfoot><dl id='nM8FN'><fieldset id='nM8FN'></fieldset></dl></div>
          <tfoot id='nM8FN'></tfoot>

                <bdo id='nM8FN'></bdo><ul id='nM8FN'></ul>

                <small id='nM8FN'></small><noframes id='nM8FN'>

                <legend id='nM8FN'><style id='nM8FN'><dir id='nM8FN'><q id='nM8FN'></q></dir></style></legend>
                    <tbody id='nM8FN'></tbody>
                1. 本文介绍了如何将 std::string 传递给 glShaderSource?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

                  问题描述

                  我有以下代码:

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

                  但它使我的程序崩溃.如何将 std::string 转换为 const char ** ?我也试过 (const char **)& 但它说需要 l 值",我不明白.当我使用此代码时它工作正常:

                  But it makes my program crash. How do I convert std::string into const char ** ? I also tried (const char **)& but it said "requires l-value" which I don't understand. It works fine when I use this code:

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

                  但我不能直接从 std::string 让它工作.我可以为它分配一个新的 char 数组,但这不是很好的代码.

                  But I can't make it work directly from a std::string. I could allocate a new char array for it but that is not nice code.

                  我也尝试过 const GLchar 但显然它没有区别.

                  I also tried with const GLchar but obviously it makes no difference.

                  推荐答案

                  data.c_str() 返回一个 const char*,所以这样做:

                  data.c_str() returns a const char*, so do this:

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

                  这篇关于如何将 std::string 传递给 glShaderSource?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!

                  上一篇:OpenGL 对象的 RAII 包装器 下一篇:使用 glut 和 std::string 时 main() 之前的分段错误?

                  相关文章

                  最新文章

                  <small id='x6tz3'></small><noframes id='x6tz3'>

                2. <i id='x6tz3'><tr id='x6tz3'><dt id='x6tz3'><q id='x6tz3'><span id='x6tz3'><b id='x6tz3'><form id='x6tz3'><ins id='x6tz3'></ins><ul id='x6tz3'></ul><sub id='x6tz3'></sub></form><legend id='x6tz3'></legend><bdo id='x6tz3'><pre id='x6tz3'><center id='x6tz3'></center></pre></bdo></b><th id='x6tz3'></th></span></q></dt></tr></i><div id='x6tz3'><tfoot id='x6tz3'></tfoot><dl id='x6tz3'><fieldset id='x6tz3'></fieldset></dl></div>

                  <legend id='x6tz3'><style id='x6tz3'><dir id='x6tz3'><q id='x6tz3'></q></dir></style></legend>
                    <bdo id='x6tz3'></bdo><ul id='x6tz3'></ul>
                    1. <tfoot id='x6tz3'></tfoot>