大家帮帮我,一个关于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")

错了!!我不太清那出了问题。请高手帮忙啊!!!应如何声明?如何引用??
...全文
129 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
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

1,488

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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