VB STRUCT VC DLL

guaigaihu 2008-10-20 01:50:03
目的:
现在在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内申明此结构体,以实现结构体的传递?
...全文
154 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
guaigaihu 2008-10-20
  • 打赏
  • 举报
回复
谢1楼的兄弟了。
guaigaihu 2008-10-20
  • 打赏
  • 举报
回复
貌似VS2003不支持:“结构体内加结构体”这种传递方式,
那对于我这种CASE,应该怎么办?不会让我改成STRING数组吧。。。
Forrest23 2008-10-20
  • 打赏
  • 举报
回复
帮顶~

16,717

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧