在vs中创建dll动态链接库并在Labview中调用

创建dll文件

首先按照以下设置创建一个解决方案
在vs中创建dll动态链接库并在Labview中调用_第1张图片
在vs中创建dll动态链接库并在Labview中调用_第2张图片
用C++创建的dll支持导出变量,函数,类,由于Labview仅支持从dll获取函数返回值,所以我们本次之关心dll导出函数的情形。
勾选导出符号,会有创建导出函数、变量、类的例子。按照例子的格式写就可以创建一个可供外部调用的函数,实现我们编写dll文件的目的

// 下列 ifdef 块是创建使从 DLL 导出更简单的
// 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 DLLTEST_EXPORTS
// 符号编译的。在使用此 DLL 的
// 任何其他项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将
// DLLTEST_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的
// 符号视为是被导出的。
#ifdef DLLTEST_EXPORTS
#define DLLTEST_API __declspec(dllexport)
#else
#define DLLTEST_API __declspec(dllimport)
#endif

/*/ 此类是从 dlltest.dll 导出的
class DLLTEST_API Cdlltest {
public:
	Cdlltest(void);
	// TODO:  在此添加您的方法。
};*/

extern DLLTEST_API int ndlltest;

DLLTEST_API double add(double a, double b);
DLLTEST_API double sub(double a, double b);

在头文件里像这样写上自己的函数
// dlltest.cpp : 定义 DLL 应用程序的导出函数。
//

#include "stdafx.h"
#include "dlltest.h"

// 这是导出变量的一个示例
DLLTEST_API int ndlltest=0;

// 这是导出函数的一个示例。
DLLTEST_API double add(double a, double b)
{
	double result;
	result = a + b;
	return result;
}

DLLTEST_API double sub(double a, double b)
{
	double result;
	result = a - b;
	return result;
}

在cpp文件里写自己的函数,
如这里的add()sub(),
只要在前面加上DLLTEST_API即可
仅给Labview用不需要关心main函数怎么写的

在vs中创建dll动态链接库并在Labview中调用_第3张图片
点击生成
在vs中创建dll动态链接库并在Labview中调用_第4张图片
输出窗口里会提示dll文件所在位置
调用时,注意同时把.h文件.dll文件和.lib文件放在一起

在labview里调用dll文件

一个dll文件里可以有多个函数 一个函数只能有一个返回值

Labview可在同一vi中重复调用同一个的dll文件
Labview每一次调用一个dll文件时只能选择其中的一个函数

Labview按连线顺序给dll中的函数传参,多出的参数被忽略

在vs中创建dll动态链接库并在Labview中调用_第5张图片
在后面板中选择这个,之后双击创建的这个东西
在vs中创建dll动态链接库并在Labview中调用_第6张图片
选dll文件的路径,选要调用的函数
在vs中创建dll动态链接库并在Labview中调用_第7张图片
之后设置参数,第一个是函数返回的值,后面的依次是函数的参数,这里的参数名称没有要求,可以随便取名字。

之后出现连线端就代表可以用了,输出端子应该比输入端子多一个。
不知道我写这些简单的东西有什么意义,但是难的又不会,加油,奥里给。

你可能感兴趣的:(labview,计算机仿真,dll)