注册 登录
编程论坛 VB6论坛

如何向DLL中传递自定义结构体?

kaishiuexi 发布于 2008-01-09 10:54, 3875 次点击
我的程序中有一自定义结构体TableInfo
我的DLL中需要这个结构体中的信息,于是我设计了一个接口itfDialog
接口函数如下:
Public Sub ShowDialog(ByVal frmCaption As String, tiTableInfo as TabelInfo,lsLayoutStyle as long)

End Sub
我在程序中如何向DLL中传递TableInfo结构体呢?
注:DLL中的TableInfo定义与程序中完全一致
10 回复
#2
随风逐流2008-01-09 10:57
。。。。直接穿不就行了,当成对象传过去
#3
kaishiuexi2008-01-09 11:04
DLL中能不能不定义TabelInfo这个结构体,而改用其他途径达到目的呢?
两个地方都定义的话只要改变其中的一个就完了
#4
随风逐流2008-01-09 11:11
我看是不可能。
就例如加密解密
改了一个方,另方肯定要改
#5
kaishiuexi2008-01-09 11:20
也就意味着以后别人来和我做集成,要用到这个接口的话也必须定义同样的一个结构体,不然的话我还必须再提供一个接口,比如说我在程序中可以先提取TableInfo结构中的信息并分别保存在数组中,然后传递数组.那个接口的参数必须为我的结构体中的具体信息项.我只有这一个办法了吗?
#6
随风逐流2008-01-09 11:32
比如说我在程序中可以先提取TableInfo结构中的信息并分别保存在数组中,然后传递数组
这个可以。
tiTableInfo as TabelInfo你直接传递对象就可以了,OBJECT
#7
kaishiuexi2008-01-09 16:02
不行啊,出现传地址参数类型不匹配!
#8
kaishiuexi2008-01-09 16:33
DLL中的自定义数据类型放在了模块里,与程序中的定义完全一致,还是不能传递,提示类型不匹配!!
#9
Joforn2008-01-10 12:11
使用Byval ... as  Any
#10
尐妖2008-02-28 13:26
阅过.[bc05]
#11
shi7812032013-11-22 00:39
以下是引用kaishiuexi在2008-1-9 16:33:04的发言:

DLL中的自定义数据类型放在了模块里,与程序中的定义完全一致,还是不能传递,提示类型不匹配!!

就算把结构体定义到公共模块中并用Public定义,也不能解决这个问题,因为本人也遇到与你相同的技术难题!
1