Excepción usando PInvoke (en C# .NET)

ofl666
04 de Marzo del 2006
Buenas...

lo primero disculpas, se que este foro es de C y C++ no de C# .NET pero el caso que me ocurre es haciendo algo similar a como se haría en C++ (a parte de que sería mas común hacerlo en C++ que en C#) y quizas me podaís hechar una mano...

Estoy intentando llamar a una función externa (de la glu32.dll que es una librería de OpenGL aunque de donde sea tampoco tiene mucha importancia aqui) desde .NET, lo he hecho con otras mil funciones de esa misma librería y de otras y nunca he tenido ningún problema pero en una determinada función no consigo hacerlo:

[DllImport(glu32, EntryPoint ="gluNewQuadric")]
public static extern object gluNewQuadric ( );

El caso es que al invocar a esta función me salta una System.Runtime.InteropServices.MarshalDirectiveException con el siguiente mensaje: "Restricción PInvoke: no se pueden devolver variantes" por lo que entiendo que los tiros van por el tipo de valor devuelto...

La función original tendría la forma:
GLUquadricObj *gluNewQuadric(void);

¿Alguien sabe por que ocurre esto? ¿como solucionarlo? ¿alguna pista?... no se, lo que sea, algo de información al respecto, estoy completamente perdido.

Gracias