大家帮帮我,一个关于dll调用的参数问题

2910495aaa 2004-09-21 03:55:27
有一个用vc编的dll,里面有这样的一个函数及说明!

函数名:CNGPSendSingle()

参数名 数据类型

nMsgType Int

sServiceID Char(11)

SINIFile const char *

我用vb调用它,我的声明如下:

Declare Function CNGPSendSingle Lib "smgwapi.dll" (Byval nMsgType As integer, sServiceID as string, SINIFile as any) As Integer

调用:

dim aaa as integer

aaa=CNGPSendSingle(1,"1111","222222")

错了!!我不太清那出了问题。请高手帮忙啊!!!应如何声明?如何引用??
...全文
108 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
limitworld 2004-10-23
VC里自带的一个工具叫DUMPBIN的,可以试试
回复
mmm123456 2004-10-22
报什么错误?

如果在VC中函数有类型的话,打包后,在dll文件中函数名会发生变化
找个可以看DLL文件资源的软件看一下函数名
回复
jpsr 2004-10-22
声明函数原型好像有问题
我建议你用数组试试
Declare Function CNGPSendSingle Lib "smgwapi.dll" (Byval nMsgType As Long, sServiceID as Any, SINIFile As Any) As Integer

aaa=CNGPSendSingle(1,"1111","222222")

第一个参数用1&,第三个用数组,看函数好像是传递字符串
你把1111和22222放在数组里面,然后数组最后一个成员要赋0,因为vc里面字符串以0来最为字符串结束标志
第二个参数
Dim arr(1 To 11) As Byte
For i = 1 To 11 Step 1
arr(i) = "1"
Next i
第三个参数
Dim arrFilePath(1 To 255) As Byte
arrFilePath(1) = "C"
arrFilePath(2) = ":"
arrFilePath(3) = "\"
arrFilePath(4) = "1"
arrFilePath(5) = "."
arrFilePath(6) = "C"
arrFilePath(7) = "0"

调用的时候
aaa=CNGPSendSingle(1,arr(1),arrFilePath(1))

大体是这样,具体的你再调试一下吧。
回复
2910495aaa 2004-10-22
qwe
回复
相关推荐
发帖
API
创建于2007-09-28

1466

社区成员

VB API
申请成为版主
帖子事件
创建了帖子
2004-09-21 03:55
社区公告
暂无公告