DLL调用问题,在线等

wing013 2007-03-06 10:32:38
我用VB一个VC6.0写的dll,调用其中的函数时,返回正确执行的信息,却不是所要的结果,比如:想的结果为:12235,可是返回来的却是一些很奇怪的东东
...全文
256 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
wing013 2007-03-07
  • 打赏
  • 举报
回复
问题我已解决,是供应商提供的二次开发的函数有错
THANKS jadeluo
jadeluo 2007-03-06
  • 打赏
  • 举报
回复
"数据不正确"
1. 有数据获取得到了?
2. 得到的数据不正确, 是指数据格式不正确, 还是数据值不正确?
wing013 2007-03-06
  • 打赏
  • 举报
回复
它会去一个硬件里下载一些数据,并存放到一个TXT文件中
所有的都正确执行了,就是放进TXT文件中的数据不正确
jadeluo 2007-03-06
  • 打赏
  • 举报
回复
这个函数会产生什么结果? 从函数参数与返回值来看, AllRecord被Get到了哪里去了, 看不出来。
wing013 2007-03-06
  • 打赏
  • 举报
回复
int GetAllRecord (BYTE cPort, DWORD dwBaudRate, BYTE cMachineNo)
没有呀,就只有这些东西了,就只给了我函数文档
jadeluo 2007-03-06
  • 打赏
  • 举报
回复
只要函数头就行了, 也就是供应商给你的文档中的那些。
wing013 2007-03-06
  • 打赏
  • 举报
回复
我都没有DLL的源码,他们已经封装好了.我看看供应商能不能提供这个源码给我
jadeluo 2007-03-06
  • 打赏
  • 举报
回复
能把VC函数的完整函数头贴出来吗?
wing013 2007-03-06
  • 打赏
  • 举报
回复
多谢jadeluo
我按照你的提示改了,可是结果还是不正确
jadeluo 2007-03-06
  • 打赏
  • 举报
回复
1. VC中的int是32位的整, 对应VB中的Long, 而不是Integer
2. byval wRecordCount as long这个在VC的函数原型中未见到, 估计是楼主笔误
3. VC中的函数声明, 需要加上__stdcall
wing013 2007-03-06
  • 打赏
  • 举报
回复
I=0表示执行正确
wing013 2007-03-06
  • 打赏
  • 举报
回复
我有一个VC6.0写的名为YMDLL的DLL,在其内有一个 int GetRecord (BYTE cPort, DWORD dwBaudRate, BYTE cMachineNo)下载打卡记录的函数,
在VB中,我作了如下声明:Declare function GetRecord Lib "YMDLL.dll"(ByVal cPort As byte, ByVal dwBaudRate As long, ByVal cMachineNo As byte,byval wRecordCount as long ) As integer
现在一个调用
i=getrecord(1,9600,1,)
返回的i=0
可是在其下载的数据文件中的数据又不正确
jadeluo 2007-03-06
  • 打赏
  • 举报
回复
楼主的问题没头没尾的, 按这样问的话, 只能得到一个答案: 你的代码有问题。

7,762

社区成员

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

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