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虚拟仪器设计技术基本控件使用之:回调函数...相关推荐

  1. 虚拟仪器总线技术的发展和应用

    2004-12-27 中国工控网 供稿 27年前,美国国家仪器公司NI(National Instruments)提出"软件即是仪器"的概念,推出了LabVIEW直观的流程图编程风 ...

  2. 中年人学C语言Windows程序设计,28 EDIT文本编辑框控件

    创建编辑框控件 编辑框控件的窗口类名是edit.除了子窗口常用的风格 WS_CHILD. WS_VISIBLE.WS_BORDER 外,edit 控件也有自己的风格,都是以ES开头. 风格 说明 ES ...

  3. 黑盒测试c语言用例,黑盒测试用例设计技术包括_测试用例包括什么_常用黑盒测试用例设计(4)...

    因此,可以把全部输入数据合理地划分为若 干等价类,在每一个等价类中取一个数据作为测试的 输入条件,这样就可以用少量的代表性测试数据,来 取得较好的测试结果.黑盒测试用例设计技术包括 * 是指对于程序的 ...

  4. 【NI Multisim 14.0虚拟仪器设计——放置虚拟仪器仪表(频率特性测试仪)】

    目录 序言

  5. 【NI Multisim 14.0虚拟仪器设计——放置虚拟仪器仪表(示波器)】

    目录 序言

  6. vpx板卡PXI板卡高精度数据采集与虚拟仪器设计

    创新的散热机制 信迈科技采用了创新的散热设计,冷却风扇位于机箱后部,冷却空气从底部进风孔吸入并从背部排出.新型的设计为每一个PXI插槽都提供了一致的冷却气流,具有优异的冷却能力.当安装到机架中时,这种 ...

  7. C语言阅读程序输出星号井号,第1章 C语言概述-python的长整型-WinFrom控件库|.net开源控件库|HZHControls官网...

    声明:文中观点仅代表个人,其中文字.图片未经本人许可,不得部分或全部转载,违者所造成影响后后果自负!联系本人方式:80368704@qq.comQQ:80368704 第1章 C语言概述 1.1和1. ...

  8. C语言六边形蜂巢数组,android 六边形蜂巢布局控件

    前言:最近新项目有个需求,实现蜂巢一样的布局界面.刚看到需求,心里卧槽了下,不过还挺好看的,于是思考了怎么实现.花了两三天时间,终于实现了跟我想要的差不多,封装成了比较容易拓展的使用方式. 需求效果如 ...

  9. es6调用c语言sdk,ES6 关于对象的扩展-contracts-WinFrom控件库|.net开源控件库|HZHControls官网...

    今天来简单说下ES6 中对象的扩展 首先回顾传统的对象表示法 let person={ 'name':'zhang', 'age':'20', 'play':function(){ alert('pl ...

  10. 中年人学C语言Windows程序设计,21静态文本框控件和创建自己的字体

    Windows static控件(静态文本框控件) 使用 TextOut 和 DrawText 函数有时候会不方便,例如: 文本不能自动换行,超出窗口范围会被隐藏: 每次更改文本都要先擦除背景再重新输 ...

最新文章

  1. 解决Ubuntu无法进行SSH连接的问题(以及如何使用SSH)
  2. 安装和使用Redis【转】
  3. SQLSERVER 日志收缩
  4. 一起开心集训队第一周训练赛2021/3/14
  5. 智能合约开发solidity编程语言实例
  6. new php,PHP: 新特性 - Manual
  7. ios9和xcode7的适配问题
  8. 李彦宏回应百度落后:我们擅长技术含量高的
  9. DB2 改变日期格式
  10. LocalDate获取时间戳
  11. 【方向盘】蚂蚁金服上市了,我不想努力了
  12. 初识云计算————虚拟化背景
  13. VulnHub-XXE
  14. JAVA之easyUI
  15. 怎么彻底删除office注册表信息?
  16. 外置USB供电与内置锂电池供电自动切换电路
  17. MATLAB学习之符号运算
  18. C语言中的if选择语句
  19. 微信小程序生成小程序码的方法
  20. TB5 AXD 在win7 vista下 启动失败

热门文章

  1. Threshold函数详解
  2. 程序员如何做好自己的职业规划
  3. 毕业论文给图、表格、公式编号(不设置多级列表)
  4. 卡方检验python程序_Python卡方检验
  5. Linux关闭防火墙并设置开机启动/不启动
  6. 还原数据库SQL语句
  7. freyja 可能会加入分库、分表功能
  8. apply,call,bind重新定义this的区别
  9. 数据分析——数据指标
  10. 英语时态8种基本时态讲解