NI LabVIEW,CVI,数据采集等产品讨论区

取消
显示结果 
搜索替代 
您的意思是: 

怎样在CVI里调用VB的DLL

请问怎样在CVI里调用VB的DLL库里的函数?是建立Active X   Controller  还是Active X server?

0 项奖励
1 条消息(共 8 条)
6,715 次查看

刚接触Labwindows,请知道的XDJM帮忙解决一下,谢谢大家高兴表情

0 项奖励
2 条消息(共 8 条)
6,712 次查看

咋没个前辈理俺呢难过表情

我现在在VB里的dll里定义了以下两个函数:

Public Function mathadd(ByVal a As Long, ByVal b As Long) As Long
          mathadd = a + b
End Function

Public Function mathdec(ByVal a As Long, ByVal b As Long) As Long
          mathdec = a - b
End Function

在CVI里生成自动化服务器之后函数变为:


HRESULT CVIFUNC math__Class1mathadd (CAObjHandle objectHandle,
                                     ERRORINFO *errorInfo, long a, long b,
                                     long *arg3);

HRESULT CVIFUNC math__Class1mathdec (CAObjHandle objectHandle,
                                     ERRORINFO *errorInfo, long a, long b,
                                     long *arg3);

请问这第三个参数long *arg3是做什么用的随便定义一个数给它,编译的时候提示句柄返回负值出错,这到底是为什么啊?

注:我已将相应的.fp  .h .c文件加到工程里了

 

 

0 项奖励
3 条消息(共 8 条)
6,706 次查看

DLL与ActiveX两回事,你用的是使用ActiveX的方法。

 

DLL文件加入到项目中,同时加入H文件,然后就可以直接使用DLL中的函数了。不知道VB是否创建导入库文件,有则加入到项目文件中。另外,CVI中有专门的DLL例程。

陈树学
QQ:276509891 .
EMAIL:CSXCS_366@126.COM
qq群:78561268 80754347 37591940
http://labview.weebly.com/
新书《LabVIEW实用工具详解》已经发售,敬请关注。
0 项奖励
4 条消息(共 8 条)
6,702 次查看

首先谢谢您的回复!

在VB里创建的DLL是具有导入文件即.LIb文件,但没有.H头文件,所以调用时找不到函数原型,这个问题很棘手,有没有办法从DLL文件到处H文件,请高手指点一二!不胜感激!

 

0 项奖励
5 条消息(共 8 条)
6,690 次查看

麻烦你发一份关于CVI DLL的资料参考一下好吗?谢谢

我的邮箱: suyanju@163.com

 

0 项奖励
6 条消息(共 8 条)
6,686 次查看

我记得VB生成的DLL不是我们所说的标准DLL, 它相当于是一种ActiveX的DLL,而且是个中间文件,当然,我对VB不熟悉,这个只是以前使用的时候遇到过问题,了解了一下,可能不准确

 

但是CVI中调用DLL和ANSI 调用DLL是一模一样,没有任何区别,所以需要了解的是怎么在C中调用VB的DLL,而不仅仅是在CVI中调用,用这个当关键词搜索应该能得到很多结果 

Best Regards

Hu Yu
0 项奖励
7 条消息(共 8 条)
6,663 次查看

首先谢谢你的回复!

VB里创建的DLL是不符合规范的DLL,即不具有输出函数的ActiveX DLL,可以通过CVI里ActiveX技术来进行调用,不知NIhuyu可曾有这方面的经验,传教一下!

0 项奖励
8 条消息(共 8 条)
6,644 次查看