微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 测试测量 > 虚拟仪器 > 为什么LV里面非要搞个循环才能连续运行呢?

为什么LV里面非要搞个循环才能连续运行呢?

时间:12-13 整理:3721RD 点击:
怎么不象其它那些文本编程语言,如VC,C++builder一样,不需要加循环,运行一次生成
可执行程序之后就可以连续使用了!
而LV还非要搞个循环才能这样!
否则的话就只能运行一次!
是我理解错了还是本来就这样,大家讨论讨论!
.197

你理解错了
labview自己有循环
不要用那个循环运行功能
.90

在什么位置
我找了很长时间没有找到
.233

但是,如果制作成脱离labview环境的独立程序
好像不加循环还是只能运行一次!
.197

????
难道那个for和while循环不行吗?
.90

我是说不加for、while循环,一般的文本语言哪用循环,事件驱动的,lv虽有事件驱动但
还是得加上循环才行!
.197

哈哈.哪个语言不是用循环的? windows的基础就是消息循环.任何windows程序都必须有
消息循环.只不过在VC里面用MFC把循环封装起来了而已. 看源程序里面那句theApp.run()
;
主要功能就是启动消息循环的.
.70

呵呵,大侠明鉴!
c++builder里面没看到
是不是也封装起来了?
.197

C++ builder当然也是封装的.其他包括VB之类的同样有消息循环.不过那个是vb的程序
框架构造的.比如,你做个最简单的VB程序.就加一个按钮.其功能就一句 : END
程序运行的时候自己先构造窗体什么的,然后启动消息循环.等着你按下按钮.结束程序
的消息送到消息循环.程序就退出 如果你只是在其他地方乱点.这些点击消息还是会传
到消息循环的.不过由于你没有定义处理方法.这些消息被丢弃. 简单来说这就是windows
程序的工作方式:消息驱动.
lv设计的时候按数据驱动考虑的.运行的时候也有消息循环存在.但对用户是不透明的.
你不能直接控制消息循环.(最新版本我不知道.估计和以前一样). 但是windows本身是
消息驱动的.所以某些功能对其他语言来说不难实现的,对lv就很麻烦.这就是原因.
NI当然可以做一个控件.比如一个按钮.加到程序里面后,按下就向这个隐含的消息
循环发出结束程序的消息. 其实,这样退出程序显得干净利落.
问题是这样就破坏了数据驱动的逻辑.想想一个按钮孤零零的呆在角落里.没有任何
线连到其他部件. 这不是G语言的风格. 所以NI选择用现在这种方式来运行和结
束程序. 就是个风格问题吧. 这么做没什么问题.你接受这个特点就好了.
毕竟,lv不是设计来做通用语言的.是为了简化数据采集和处理.
在 huafly (飞天) 的大作中提到: 】
: 呵呵,大侠明鉴!
: c++builder里面没看到
: 是不是也封装起来了?
:
.70

看了大侠的解释,顿时明朗了许多!
再次感谢!
.197

re
是个windows界面的程序他就有消息循环........
.90

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top