微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 测试测量 > 虚拟仪器 > CVI中调用DLL的问题

CVI中调用DLL的问题

时间:12-13 整理:3721RD 点击:
我想在CVI中通过DLL来访问我的USB设备。
在这之前我已经在VC下生成了关于USB设备操作的DLL。
DLL的类型是Regular DLL Using Shared MFC DLL,
函数的导出类型是 __declspec(dllexport)。
在CVI中导入的步骤如下:
1、编辑一个usbapp.h头文件声明要导入的DLL中的函数,如:
   int __stdcall OpenUsbDevice();
2、为usbapp.h文件生成导入库usbapp.lib。
3、将usbapp.lib加入到CVI工程中
4、在.c文件中#include "usbapp.h"。然后在适当的地方调用OpenUsbDevice函数。
不知道以上步骤出了什么问题,反正编译的时候就报错:Missing Prototype。出错
就在OpenUsbDevice那个地方。
不吝赐教,谢谢。
.212

vc下加入 extern "C"以阻止c++的名字修饰.比如,
extern "C" __declspec( dllexport ) int MyFunc(long parm1);
如果你在vc下没有用stdcall关键字或编译开关,CVI里面去掉stdcall.
.70

谢谢
不过你说的这些条件我都满足,
编译就是不行。不知道还有些什么要注意的细节。
Btw:我的LabWindows/CVI版本是6.0
.212

搞定了,^_^
原来是我的CVI工程的Build Options中的
Default calling convention为__stdcall
只要在*.h文件的函数前加上__cdecl关键字即可
谢谢提醒。
.212
.212

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top