GLubyte *shString;
GLcharARB *shStringPtr[1];
shString= LoadShaderText( fullFileName );
... ... ...
shStringPtr[0]= shString; 【1】 出错
glShaderSourceARB( vShader[shaderNum], 1, shStringPtr, NULL );  【2】 出错
(glShaderSourceARB的原型是void glShaderSourceARB( , , const GLcharARB **string, ) )
这是一段OpenGL的代码,书上的例子编译可以通过,但是我在另外一个程序中想用这段代码,编译不通过,提示是
      【1】cannot convert from 'unsigned char *' to 'char *' Types pointed to are 
      unrelated;conversion requires reinterpret_cast, C-style cast or function-style cast
      【2】cannot convert parameter 3 from 'char *[1]' to 'const char ** '
      Conversion loses qualifiers
这是为什么亚,我用的VC6.0。第一个可以通过强制转换解决,但是为什么在例子程序里可以通过,这里不行亚?

解决方案 »

  1.   

    shStringPtr[0]= shString; 两个类型不一样
    提示也说了 'unsigned char *' to 'char *
    第二个错误是glShaderSourceARB函数的第三个参数shStringPtr的类型不对
    你可以强制转换
    shStringPtr[0]= (char*)shString;
      

  2.   

    第二个错误强制转换后,又出现了unresolved external symbol _auxDIBImageLoadA@4
    Debug/VLSN.exe : fatal error LNK1120: 1 unresolved externals的链接错误,怎么办亚
      

  3.   

    看看这个函数_auxDIBImageLoadA
    需要什么库文件  然后加到你的工程里