问题描述
我需要在picturebox上用Opengl画一张图,设置像素格式的时候需要Wgl.wglChoosePixelFormatARB这个函数,代码如下:IntPtrhwnd=picturebox1.Handle;IntPtrdc=GetDC(hwnd);int[]attribs=newint[]{Wgl.WGL_SUPPORT_OPENGL_ARB,1,Wgl.WGL_DRAW_TO_WINDOW_ARB,1,Wgl.WGL_PIXEL_TYPE_ARB,Wgl.WGL_TYPE_RGBA_ARB,Wgl.WGL_RED_BITS_ARB,10,Wgl.WGL_GREEN_BITS_ARB,10,Wgl.WGL_BLUE_BITS_ARB,10,Wgl.WGL_DEPTH_BITS_ARB,24,Wgl.WGL_DOUBLE_BUFFER_ARB,1,0,};float[]fattribs=newfloat[]{0.0f,};intformat_max=256;int[]formats=newint[]{0,};int[]format_count=newint[]{0};Wgl.wglChoosePixelFormatARB(dc,attribs,fattribs,format_max,formats,format_count);
但是在运行时会停在Wgl.wglChoosePixelFormatARB(dc,attribs,fattribs,format_max,formats,format_count);这一行,出现“未将对象引用设置到对象的实例”的错误,请问这个问题出在哪里?另外,使用Wgl.wglChoosePixelFormatARB这个函数前是不是要进行什么设置?我看到C++的代码上有要初始化什么库的代码?那在C#里要如何实现呢?