CVI显性调用VC生成地DLLWord下载.docx
- 文档编号:13476038
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:10
- 大小:433.44KB
CVI显性调用VC生成地DLLWord下载.docx
《CVI显性调用VC生成地DLLWord下载.docx》由会员分享,可在线阅读,更多相关《CVI显性调用VC生成地DLLWord下载.docx(10页珍藏版)》请在冰豆网上搜索。
TEST04_APIintfnTest04(void)
{
return42;
}
//Thisistheconstructorofaclassthathasbeenexported.
//seetest04.hfortheclassdefinition
CTest04:
:
CTest04()
{
return;
classTEST04_APICTest04{
public:
CTest04(void);
//TODO:
addyourmethodshere.
};
externTEST04_APIintnTest04;
TEST04_APIintfnTest04(void);
步骤4,在test04.cpp中添加自己的函数,例如:
TEST04_APIintadd(intx,inty)
returnx+y;
TEST04_APIintmaxvalue(intx,inty)
if(x>
y)
returnx;
else
returny;
TEST04_APIfloatsub(floatx,floaty)
returnx-y;
TEST04_APIvoidhello(void)
MessageBox(0,"
LabWindowsCVI调用dll成功\n"
"
欢迎"
MB_ICONINFORMATION);
TEST04_APIchar*returnstr(constchar*s1,constchar*s2)
intm1,m2;
//两字符串长度
m1=strlen(s1);
m2=strlen(s2);
//求长度
char*s=(char*)malloc(sizeof(char)*(m1+m2+1));
//申请内存空间,多1字节
strcpy(s,s1);
//复制第一个字符串
strcpy(s+m1,s2);
//复制第二个字符串
returns;
//返回结果
TEST04_APIintadd(intx,inty);
TEST04_APIintmaxvalue(intx,inty);
TEST04_APIfloatsub(floatx,floaty);
TEST04_APIvoidhello(void);
TEST04_APIchar*returnstr(constchar*s1,constchar*s2);
在工程路径下新建一个.txt文本,在里面添加如下内容〔红色〕,见图3;
LIBRARY"
testmydll"
//引号内的随便写
EXPORTS
add
maxvalue
sub
hello
returnstr
图3步骤6
步骤7,将.def添加到工程中,见图4;
图4步骤7
步骤8,然后在工程下debug下找到test04.dll拷贝到CVI工程下,
CVI工程代码如下:
//==============================================================================
//
//Title:
testDLL
//Purpose:
Ashortdescriptionoftheapplication.
//Createdon:
2017/4/15at20:
20:
28bydigelao.
//Copyright:
.AllRightsReserved.
//Includefiles
#include<
windows.h>
ansi_c.h>
cvirte.h>
userint.h>
#include"
testDLL.h"
toolbox.h"
//Constants
//Types
//Staticglobalvariables
staticintpanelHandle;
HINSTANCEhDll;
//句柄
typedefint(*myfuction)(int,int);
myfuctionmf=NULL;
typedefvoid(*hello)(void);
hellohl=NULL;
typedefchar*(*returnstr)(constchar*,constchar*);
returnstrrs=NULL;
typedefint(*maxvalue)(int,int);
maxvaluemx=NULL;
typedeffloat(*sub)(float,float);
subsb=NULL;
//Staticfunctions
//Globalvariables
//Globalfunctions
///HIFNThemainentry-pointfunction.
intmain(intargc,char*argv[])
interror=0;
/*initializeandloadresources*/
nullChk(InitCVIRTE(0,argv,0));
errChk(panelHandle=LoadPanel(0,"
testDLL.uir"
PANEL));
//以下至/*displaythepanelandruntheuserinterface*/之间是加载dll中的函数
hDll=LoadLibrary("
test04.dll"
);
//动态加载DLL模块句柄
mf=(myfuction)GetProcAddress(hDll,"
add"
//得到所加载DLL模块中函数的地址
if(mf==NULL)
MessagePopup("
"
调用函数add失败!
hl=(hello)GetProcAddress(hDll,"
hello"
if(hl==NULL)
调用函数hello失败!
rs=(returnstr)GetProcAddress(hDll,"
returnstr"
if(rs==NULL)
调用函数returnstr失败!
mx=(maxvalue)GetProcAddress(hDll,"
maxvalue"
if(mx==NULL)
调用函数maxvalue失败!
sb=(sub)GetProcAddress(hDll,"
sub"
MessagePopup("
调用函数sub失败!
/*displaythepanelandruntheuserinterface*/
errChk(DisplayPanel(panelHandle));
errChk(RunUserInterface());
Error:
/*cleanup*/
DiscardPanel(panelHandle);
return0;
//UIcallbackfunctionprototypes
///HIFNExitwhentheuserdismissesthepanel.
intCVICALLBACKpanelCB(intpanel,intevent,void*callbackData,
inteventData1,inteventData2)
if(event==EVENT_CLOSE)
QuitUserInterface(0);
intCVICALLBACKOkCallback(intpanel,intcontrol,intevent,
void*callbackData,inteventData1,inte
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- CVI 显性 调用 VC 生成 DLL
![提示](https://static.bdocx.com/images/bang_tan.gif)