投稿者 魔界の仮面弁士  (社会人) 投稿日時 2009/11/28 18:47:42
ざっと見たところ、.NET の文法という話以前に、ロジック段階で不備があるように見えます。


では、GLU_TESS_VERTEX を指定して、glVertex3dvCB をコールバックさせ、
また、GLU_TESS_END を指定して、glEndCB をコールバックさせていたのですよね。
gluTessCallback tobj, GLU_TESS_VERTEX, AddressOf glVertex3dvCB
gluTessCallback tobj, GLU_TESS_BEGIN, AddressOf glBeginCB
gluTessCallback tobj, GLU_TESS_END, AddressOf glEndCB

 

しかし、の方では、GLU_TESS_VERTEX にて glEndCB をコールバックさせようとしています。
glVertex3dvCB と glEndCB では、メソッドの意味も引数定義も違っているでしょうから、
この指定方法では VB2008 どころか、VB6 であってもうまくいかないと思いますよ。
Dim CallC As New CallCC(AddressOf MyCall.glEndCB)
Dim returnValue3 As IntPtr = Marshal.GetFunctionPointerForDelegate(CallC)
gluTessCallback(tobj, GLU_TESS_VERTEX, returnValue3)

 

VB2008 に移植する前に、gluTessCallback に指定するそれぞれの引数の意味について、
もう一度調べてみてください(コードの意味を理解してからの方が、移植作業が捗るかと思います)。