labwindows随机数生成c语言,LabWindows/CVI虚拟仪器设计技术基本控件使用之:回调函数...
ing标题:文件名
OKBUTTONCommand Button标题:显示(__S) 回调函数:OkCallback
QUITBUTTONCommand Button标题:退出(__Q) 回调函数:QuitCallback
(2)程序源代码
?//头文件声明,系统自动添加
#include
#include
#include
#include "回调函数.h"
//全局静态变量
static int panelHandle;
//主函数
int main (int argc, char *argv[])
{
//初始化LabWindows/CVI 运行时库引擎
if (InitCVIRTE (0, argv, 0) == 0)
//如果返回值为0, 则初始化失败,返回–1
return –1;
//装载面板,返回面板句柄
if ((panelHandle = LoadPanel (0, " 回调函数.uir", PANEL)) < 0)
//如果装载面板失败,则返回–1
return –1;
//获得*argv[] 中的字符串,即为文件名
SetCtrlVal (panelHandle, PANEL_STRING, argv[0]);
//显示面板
DisplayPanel (panelHandle);
//运行用户界面
RunUserInterface ();
//删除面板句柄
DiscardPanel (panelHandle);
//主函数执行成功,返回0
return 0;
}
//面板回调函数
int CVICALLBACK PanelCB (int panel, int event, void *callbackData,
int eventData1, int eventData2)
{
switch (event)
{
//面板响应事件
case EVENT_CLOSE:
// 调用退出按钮的EVENT_COMMIT 事件
? QuitCallback (panelHandle, PANEL_QUITBUTTON, EVENT_COMMIT, 0, 0, 0);
break;
}
//函数返回值,0 表示成功
return 0;
}
//退出按钮
int CVICALLBACK QuitCallback (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
if (event == EVENT_COMMIT)
{
//退出用户界面
QuitUserInterface (0);
}
return 0;
}
//显示按钮
int CVICALLBACK OkCallback (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
//定义局部变量
int i;
double datapoints[100];
switch (event)
{
case EVENT_COMMIT:
// 产生100 个随机数,放入数组datapoints 中
for (i = 0; i < 100; i++)
{
datapoints[i] = rand() / 32767.0 * 100.0;
}
// 清除以前Graph 中绘制的波形
DeleteGraphPlot (panelHandle, PANEL_GRAPH, -1, VAL_IMMEDIATE_DRAW);
// 在Graph 中绘制波形
PlotY (panelHandle, PANEL_GRAPH, datapoints, 100, VAL_DOUBLE, VAL_THIN_LINE,
VAL_EMPTY_SQUARE, VAL_SOLID, 1, VAL_RED);
break;
}
return 0;
}
3:程序注释
① main 函数
每一个C 程序都必须从一个main 函数开始,在调用其他函数流程后再次回到main 函数,并且在main 函数中结束整个程序的运行。实际上,main 函数可以放在程序的任何地方:有些程序员喜欢把它放在最前面,而另一些程序员把它放在最后面,无论放在哪个地方,以下几点说明都是适合的。
在C语言中,main 函数可以有三个参数,即:argc,argv 和env 。
argc :整数类型,表示传给main 函数的命令行参数个数,一般为1。
*argv[] :二维字符串数组。在LabWindows/CVI 中,argv[0] 为程序运行时的文件名,与编译设置有关,在菜单Build→Configuration 下有两个选项,即:Release 和Debug。当选择Release 时,argv[0] 为当前工程名加上".exe";当选择Debug 时,argv[0] 为当前工程名加上"_dbg.exe"。argv[argc] 为NULL 。
*env:二维字符串数组,为环境变量。在LabWindows/CVI 中,env[]一般为空字符串且省略不写。
LabWindows/CVI 启动时总是把这三个参数传递给main 函数,参数的传递顺序为:argc 、argv 、env,可以在用户程序中加以说明也可以不说明,如果说明了部分或全部参数,它们就成为main 主函数的局部变量。main 主函数的声明方式主要有以下几种:
main (void)
main (int argc, char *argv[])
main (int argc, char *argv[], char *env[])
② InitCVIRTE 函数
初始化LabWindows/CVI 运行时(库)引擎。在使用外部编译器Visual C++ 、Borland C++ Builder 时调用,如果不使用外部编译器,不会影响程序正常运行。函数原型为:
int InitCVIRTE (void *HInstance, char *Argv[],
labwindows随机数生成c语言,LabWindows/CVI虚拟仪器设计技术基本控件使用之:回调函数...相关推荐
- 虚拟仪器总线技术的发展和应用
2004-12-27 中国工控网 供稿 27年前,美国国家仪器公司NI(National Instruments)提出"软件即是仪器"的概念,推出了LabVIEW直观的流程图编程风 ...
- 中年人学C语言Windows程序设计,28 EDIT文本编辑框控件
创建编辑框控件 编辑框控件的窗口类名是edit.除了子窗口常用的风格 WS_CHILD. WS_VISIBLE.WS_BORDER 外,edit 控件也有自己的风格,都是以ES开头. 风格 说明 ES ...
- 黑盒测试c语言用例,黑盒测试用例设计技术包括_测试用例包括什么_常用黑盒测试用例设计(4)...
因此,可以把全部输入数据合理地划分为若 干等价类,在每一个等价类中取一个数据作为测试的 输入条件,这样就可以用少量的代表性测试数据,来 取得较好的测试结果.黑盒测试用例设计技术包括 * 是指对于程序的 ...
- 【NI Multisim 14.0虚拟仪器设计——放置虚拟仪器仪表(频率特性测试仪)】
目录 序言
- 【NI Multisim 14.0虚拟仪器设计——放置虚拟仪器仪表(示波器)】
目录 序言
- vpx板卡PXI板卡高精度数据采集与虚拟仪器设计
创新的散热机制 信迈科技采用了创新的散热设计,冷却风扇位于机箱后部,冷却空气从底部进风孔吸入并从背部排出.新型的设计为每一个PXI插槽都提供了一致的冷却气流,具有优异的冷却能力.当安装到机架中时,这种 ...
- C语言阅读程序输出星号井号,第1章 C语言概述-python的长整型-WinFrom控件库|.net开源控件库|HZHControls官网...
声明:文中观点仅代表个人,其中文字.图片未经本人许可,不得部分或全部转载,违者所造成影响后后果自负!联系本人方式:80368704@qq.comQQ:80368704 第1章 C语言概述 1.1和1. ...
- C语言六边形蜂巢数组,android 六边形蜂巢布局控件
前言:最近新项目有个需求,实现蜂巢一样的布局界面.刚看到需求,心里卧槽了下,不过还挺好看的,于是思考了怎么实现.花了两三天时间,终于实现了跟我想要的差不多,封装成了比较容易拓展的使用方式. 需求效果如 ...
- es6调用c语言sdk,ES6 关于对象的扩展-contracts-WinFrom控件库|.net开源控件库|HZHControls官网...
今天来简单说下ES6 中对象的扩展 首先回顾传统的对象表示法 let person={ 'name':'zhang', 'age':'20', 'play':function(){ alert('pl ...
- 中年人学C语言Windows程序设计,21静态文本框控件和创建自己的字体
Windows static控件(静态文本框控件) 使用 TextOut 和 DrawText 函数有时候会不方便,例如: 文本不能自动换行,超出窗口范围会被隐藏: 每次更改文本都要先擦除背景再重新输 ...
最新文章
- 解决Ubuntu无法进行SSH连接的问题(以及如何使用SSH)
- 安装和使用Redis【转】
- SQLSERVER 日志收缩
- 一起开心集训队第一周训练赛2021/3/14
- 智能合约开发solidity编程语言实例
- new php,PHP: 新特性 - Manual
- ios9和xcode7的适配问题
- 李彦宏回应百度落后:我们擅长技术含量高的
- DB2 改变日期格式
- LocalDate获取时间戳
- 【方向盘】蚂蚁金服上市了,我不想努力了
- 初识云计算————虚拟化背景
- VulnHub-XXE
- JAVA之easyUI
- 怎么彻底删除office注册表信息?
- 外置USB供电与内置锂电池供电自动切换电路
- MATLAB学习之符号运算
- C语言中的if选择语句
- 微信小程序生成小程序码的方法
- TB5 AXD 在win7 vista下 启动失败