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

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

cvi调用VC++的DLL

已解决!
转到解答
NI应用工程师:您可以参考下面的文章!
http://digital.ni.com/public.nsf/allkb/EBCE04F31CBB9ACE862569290071CB28?OpenDocument
11 条消息(共 19 条)
8,699 次查看
我以前也用CVI包装过安捷伦一些仪器的dll而且调用也很方便,但是我没有没有用CVI操作过并口,而且WinIo.dll要与WinIo.sys和WiIo.lib  WinIo.VXD一起使用,这次调用很不顺利,不知道在CVI中如何处理sys  and  VXD两个文件?
0 项奖励
12 条消息(共 19 条)
8,693 次查看

VC中封装DLL在CVI中使用要按 C的形式进行导出 或使用 .def文件进行导出,使用.def文件进行导出要注意在CVI中函数声明的写法.你可以在封装的dll中封装winio并完成并口的操作.这个我试过了可行的,希望能够解决你的问题.

13 条消息(共 19 条)
8,680 次查看
解答
已被主题作者 阿杰歌 接受

你是如何封装的,可否把工程文件发给我看看!

zzw4212@163.com 

0 项奖励
14 条消息(共 19 条)
8,674 次查看
sys和VXD两个文件你是如何处理的?
0 项奖励
15 条消息(共 19 条)
8,668 次查看

我在VC包装的动态链接库,在VC里调用没有问题,但是到了CVI里还是无法通过编译!!!!!

文件包装声明:

 

 

extern "C" bool __declspec(dllexport)  InitializeLtp();

extern "C" void __declspec(dllexport)  ShutdownLtp();

 

 

 函数定义:

 bool  InitializeLtp()

{

  return InitializeWinIo();

}

 void  ShutdownLtp()

{

 ShutdownWinIo();

 

以上是在VC中的编辑:

以下是在CVI中的调用:

声明:在Ltp.h中

__declspec(dllimport) bool  InitializeLtp();

__declspec(dllimport) void  ShutdownLtp();

 

调用在main中:

//初始化并口

if( InitializeLtp())

    { 

printf("Init LPT1      OK!\r\n");

    }

else 

printf("Init LPT1      error!\n");

}

。。。。。。。。。。。。。。。。。。。。。

 

 

。。。。。。。。。。。。。。。。。。。

ShutdownLtp();

 

发生的错误还是一样的!!missing  prototype 

 

 

0 项奖励
16 条消息(共 19 条)
8,606 次查看

我将你需要的使用VC做了封装,你到这个地址下载:(在此我无法上传附近)

http://www.namipan.com/d/1e6a0ceb5c7296d5438f365d3ebae108a4438f3bfcd60300

0 项奖励
17 条消息(共 19 条)
8,591 次查看
0 项奖励
18 条消息(共 19 条)
8,590 次查看

您好!我也遇到类似的问题了,试了前面的办法都不好用,不知道您最后是如何解决的?

我分析就是这个bool类型cvi不支持导致的,苦于不知如何改啊?

0 项奖励
19 条消息(共 19 条)
7,441 次查看