Error in glShaderSourceARB in Vista 64
I have succesfully made a simple program to test vertex and pixel shaders. It works ok in Vista 32 and XP Pro 32, but it crashes in glShaderSourceARB in Vista 64. The call I use is:
Gl.glShaderSourceARB(m_iShaderID, m_strShaderCode.Length, m_strShaderCode, m_iStrLengths);
where m_iShaderID is the handle returned by glCreateShaderObjectARB, m_strShaderCode is a string[] with each line in a string, and iStrLengths is a int[] with the lenght of each string.
I'm using Tao 2.1.0.12.
The exact error returned is:
Consulte el final de este mensaje para obtener más detalles sobre cómo invocar a la depuración
Just-In-Time (JIT) en lugar de a este cuadro de diálogo.
************** Texto de la excepción **************
System.AccessViolationException: Intento de leer o escribir en la memoria protegida. A menudo, esto indica que hay otra memoria dañada.
en System.StubHelpers.MngdNativeArrayMarshaler.ClearNative(IntPtr pMarshalState, Object& pManagedHome, IntPtr pNativeHome)
en Tao.OpenGl.Gl.glShaderSourceARB(Int32 shaderObj, Int32 count, String[] string, Int32[] length)
en OpenGLDemo.COpenGLFragmentShader.Compile()
en OpenGLDemo.COpenGLViewControl.SetShaderUse(Boolean use)
en OpenGLDemo.Form1.EnableShaderButton_Click(Object sender, EventArgs e)
en System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
en System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
en System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
en System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
en System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
en System.Windows.Forms.Control.WndProc(Message& m)
en System.Windows.Forms.ToolStrip.WndProc(Message& m)
en System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
en System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Ensamblados cargados **************
mscorlib
Versión del ensamblado: 2.0.0.0
Versión Win32: 2.0.50727.1434 (REDBITS.050727-1400)
Código base: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll
----------------------------------------
OpenGLDemo
Versión del ensamblado: 1.0.0.0
Versión Win32: 1.0.0.0
Código base: file:///C:/Users/fernando/Desktop/OpenGL%20Demo/OpenGLDemo.exe
----------------------------------------
System.Windows.Forms
Versión del ensamblado: 2.0.0.0
Versión Win32: 2.0.50727.1434 (REDBITS.050727-1400)
Código base: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5...
----------------------------------------
System
Versión del ensamblado: 2.0.0.0
Versión Win32: 2.0.50727.1434 (REDBITS.050727-1400)
Código base: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/Sy...
----------------------------------------
System.Drawing
Versión del ensamblado: 2.0.0.0
Versión Win32: 2.0.50727.1434 (REDBITS.050727-1400)
Código base: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d...
----------------------------------------
Tao.Platform.Windows
Versión del ensamblado: 1.0.0.5
Versión Win32: 1.0.0.5
Código base: file:///C:/Windows/assembly/GAC_MSIL/Tao.Platform.Windows/1.0.0.5__70110...
----------------------------------------
Tao.OpenGl
Versión del ensamblado: 2.1.0.12
Versión Win32: 2.1.0.12
Código base: file:///C:/Windows/assembly/GAC_MSIL/Tao.OpenGl/2.1.0.12__1ca010269a4501...
----------------------------------------
System.Drawing.resources
Versión del ensamblado: 2.0.0.0
Versión Win32: 2.0.50727.1434 (REDBITS.050727-1400)
Código base: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing.resources/2.0.0.0_es...
----------------------------------------
mscorlib.resources
Versión del ensamblado: 2.0.0.0
Versión Win32: 2.0.50727.1434 (REDBITS.050727-1400)
Código base: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll
----------------------------------------
System.Windows.Forms.resources
Versión del ensamblado: 2.0.0.0
Versión Win32: 2.0.50727.1434 (REDBITS.050727-1400)
Código base: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0....
----------------------------------------
************** Depuración JIT **************
Para habilitar la depuración Just In Time (JIT), el archivo de configuración de esta
aplicación o equipo (machine.config) debe tener el
valor jitDebugging establecido en la sección system.windows.forms.
La aplicación también se debe compilar con la depuración
habilitada
Por ejemplo:
Cuando esté habilitada la depuración JIT, cualquier excepción no controlada
se enviará al depurador JIT registrado en el equipo
en lugar de controlarlo mediante el cuadro de diálogo.
