当前位置:编程学习 > C#/ASP.NET >>

VB STRUCT VC DLL

目的:
现在在VC.NET内有一结构体,里面含有别的结构体指针。
在VB.NET内申明和此结构体一致的结构体以实现结构体的传递.

结构体形式如下:
// vc.net侧
typedef struct {
   testB  *tb;    // 结构体表Entity配列
   .......
}testA;
typedef struct {
   .......
}testB  ;

在VB。NET侧:
' testA struct
 <StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)> _
    Public Structure testA 
    ' 怎样定义结构体,才能实现传递?
    <MarshalAs(UnmanagedType.LpStruct)> dim test as testB
    ...............
    End Structure 

  ' testb struct
 <StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)> _
    Public Structure testB
     ..............
    End Structure 

上面的VB.NET侧的结构体的定义是错的,运行时出错:
Additional information: Can not marshal field test of type testA: Marshaling types to LPStruct is not supported on structure fields.

问题:
此结构体做为DLL的参数传递.
请教各位大侠:怎样在VB.NET内申明此结构体,以实现结构体的传递?
--------------------编程问答-------------------- 帮顶~ --------------------编程问答-------------------- 貌似VS2003不支持:“结构体内加结构体”这种传递方式,
那对于我这种CASE,应该怎么办?不会让我改成STRING数组吧。。。 --------------------编程问答-------------------- 谢1楼的兄弟了。
补充:.NET技术 ,  VB.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,