如何在CVI中使用dll文件,只有dll,没有lib和h文件,请详细回答,万分感谢,这是我写的调用程序,
//声明
HINSTANCE D12dll = NULL;//开始准备导入DLL
int (__stdcall *SysInit)(unsigned int *ipbuff, unsigned int socket_num);
//导入DLL函数
void dll_inport(void)
{
if(D12dll == NULL)
D12dll = LoadLibrary("D12dll.dll"); //动态方式调用DLL
if(D12dll)
{
USB_Init = (int (__stdcall *)(unsigned int *ipbuff, unsigned int socket_num))GetProcAddress(D12dll,"SysInit");
// VC DLL采用__stdcall方式输出,而不是__cdecl方式,如果采用__cdecl方式,函数名直接为 "Sys_Init"
}
}
main()
{
int *ip=NUll;
int num=0;
SysInit(ip,num);
}
显示错误:
FATAL RUN-TIME ERROR:Dereference of null pointer
既然形参已经告诉你 要buffer 你就得给他buffer
(ipbuf 显然是 ipaddress buffer 存放ip地址缓存) num设置合适大小
请定义 一个unsigned int 数组
请定义 一个unsigned int * 指针 指向数组
给你写了个 cvi 调用devcpp C语言写的dll 参数类型和你这 类似
(仅仅是简单的选择法对数组排序l)
万分感谢,本人cvi小菜鸟,再问您一下,采集卡说明书中给的指令:
extern "c" DLLexport int _stdcall ConnectDel
(unsigned int socket_num);
其中socket_num为要操作的Scoket在DLL里对应的唯一编码,这个编码怎么看呢,还有该语句是什么意思,直接输入进去老是报错,应该怎么用,
不好意思啊,又麻烦您了
这个就是 dll导出的函数 原型 声明
LoadLibrary 动态方式调用dll 不用管 extern "c" 和 DLLexport神马....
不需要输入
如果是静态调用dll内的函数才需要这个语句 但是是调用是要import导入(这个是dll的导出声明export,调用就要改导入import ,你不需要管这些)
编码 ..... 这个估计是 一个标识号
估计 建立socket时返回的一个编号
猜出 建立1号socket
connectdel就是删除socket
要删除建立的1号socket就ConnectDel(1) ......... 请去多看几遍说明书
万分感谢,我先试试,不懂的还要麻烦您
如何在labwindows里调用外部dll文件
1,静态调用,必须有.dll .h .lib 三个文件,将3个文件拷贝到工程目录,在你的源文件中include .h文件,在工程项目上 右键 添加 .lib文件,就可以用dll中的函数了,函数原型在.h中。这种方法最普遍,一般都是这样用。2,动态调用,有.dll 一个文件就可以了,这个麻烦一些,要定义函数指...
Labwindows CVI 中怎么调用VC++写的库
1.利用VC++生成.dll文件和.lib文件 (1) 创建Win32 Dynamic-Link Library工程。工程名为Dll1。(2) 在Dll工程添加C++ Source File,文件名为Dll1。(3) 在Dll1.app文件中写代码如下: extern “C” _declspec(dllexport) int add(int a,int b) { return a+b; } extern “C” _...
labwindows\/cvi能不能加入第三方应用程序
在CVI中打开头文件,在编辑窗口可以看到文件的内容。从头文件源代码窗口的菜单栏中选择“Options”,再选择“Generate DLL Import Library”,会出现提示,通过浏览文件的方式选择DLL,生成导入library。CVI于是会创建导入library,这样在CVI环境中,您可以在编译链接的时候包含这个导入library。参考LabWindows\/CVI...
如何在LabWindows\/CVI中为DLL创建一个导入library
在CVI中打开头文件,在编辑窗口可以看到文件的内容。从头文件源代码窗口的菜单栏中选择“Options”,再选择“Generate DLL Import Library”,会出现提示,通过浏览文件的方式选择DLL,生成导入library。CVI于是会创建导入library,这样在CVI环境中,您可以在编译链接的时候包含这个导入library。参考LabWindows\/CVI...
如何使用Labwindows CVI?
为了深入理解和掌握Labwindows\/CVI的使用,让我们分步骤进行详细说明。首先,您需要访问NI网站并下载安装CVI。随后,创建一个新的工程,并开始构建用户界面。双击打开设置界面,确保在CALLBACK FUNCTION中已设置名称_callback,以便为用户界面中的各个功能块配置回调函数。设计控件,如果您的应用需要实现控件回调...
labview中怎么调用c++写的程序啊?
可以把C++功能封装成DLL,然后使用LabVIEW的【调用库函数节点】来间接实现。或者你的C++程序编译成.exe文件,可以使用LabVIEW的【执行系统命令节点】来直接执行.exe文件 另一个变通的方法是直接使用LabWIndows\/cvi,它有很多跟LabVIEW类似的控件,也可以直接调用LabVIEW的控件,但是完全符合C\/C++语法。
CVI,labwindows定义
Labwindows\/CVI8.0是美国NI公司出品的虚拟仪器设计软件,是标准的C语言,加很多功能块构成的,使用很方便。1、在用Tab键移动光标时,是按照 CVI自动根据.uir文件生成的那个.h文件中定义的控件ID移动的,打开那个.h文件你会看到#define PANEL 1 #define PANEL_…… n(n是整数,为控件ID),光标就是...
labwindows\/cvi现在使用哪个编译器
需要注意的是,如果您需要调用CVI编译的静态库文件您同样需要在您的工程中包含.obj文件或者.c文件。对于该种应用可以参考以下链接:KnowledgaBase 2TDFEPSJ: I Get Error -86 When I Try to Use a Static Library Created in CVI. Why?6. 如果对于.obj文件和.llb文件使用了LoadExternalModule语句,...
LabWindows\/CVILabWindows\/CVI 简介
在交互式开发环境中编写的程序需遵循标准C规范。使用LabWindows\/CVI可以完成多项任务,包括交互式编程、功能强大的函数库创建数据采集和仪器控制应用、利用完备的软件工具进行数据采集、分析和显示、开发IVI仪器驱动程序和创建ActiveX服务器、开发C目标模块、动态链接库(DLL)、C语言库。在开发环境中,用户可以...
labwindows\/cvi 怎么打包做成可执行文件
可以。不知你用的CVI哪个版本?举个例子,细节可能因版本有所差别。在工程窗口中,选择【Build】\/【Creat Distribution Kit】,弹出生成软件包对话框。设置安装程序的默认目录、生成的安装程序所在的目录、设置安装程序是否安装Run-Time Engine(这个通常一定要安装)等等。再把程序所需所有文件添加进去。