标题:vb调用delphi *.dll问题
只看楼主
cdhy
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2008-11-11
 问题点数:0 回复次数:1 
vb调用delphi *.dll问题
在vb中需调用用delphi 编的dll,并向其传递参数,其delphi函数原型为
function XT_OpenComm(CommName:ShortString;OverTime:Word;BaudRate:Word;SysNum:Byte):Byte;stdcall;
请问在vb中如何确定ShortString和Word的类型以便正确传递参数
我是这样引用的:
Public Declare Function XT_OpenComm Lib "K:\SerialPort.dll" (CommName As Any, OverTime As Integer, BaudRate As Integer, SysNum As Byte) As Byte

Private Sub Form_Load()
D = XT_OpenComm("COM1", 3000, 2400, 75)
End Sub
但确返回不了正确结果。
搜索更多相关主题的帖子: delphi dll 
2008-11-11 10:30
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
CommName:ShortString;OverTime:Word;BaudRate:Word;SysNum:Byte

shorstring  是什么类型?(这个我不懂)
你用 any 类型,传了一个字符串进去,传进去的是 以 Unicode 格式的字符串, 在 Delphi 里,字符串是什么格式的?
是要 ANSI 格式的还是 Unicode 格式的.
这个地方的VB申明,建议写成
CommName As Byte()
调用时,根据 Delphi 里的要求,用 StrConv 转为对应类型的 byte() 传进去。

word ,字,在 Delphi 里是多长?2字节,还是4字节(这个我不懂),
如果是 2字节,就是  Integer ,如果是 4字节,就得有 long 进行声明。

授人于鱼,不如授人于渔
早已停用QQ了
2008-11-11 12:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-243564-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.029365 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved