cpubbs论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 1518|回复: 10

新人求助:如何在Labwindows中一个主面板中调用其他面板?

[复制链接]
发表于 2015-4-23 16:49:23 | 显示全部楼层 |阅读模式
如题,已经做好了两个工程,希望把它们通过一个主面板调用,主面板里有两个按钮分别打开两个工程中的面板,用DLL链接总是报错,求助呀~~{:soso_e199:}
发表于 2015-4-23 20:06:42 | 显示全部楼层
LaunchExecutableEx ("*.exe /C full", LE_SHOWMINIMIZED, &g_exeHandle);
 楼主| 发表于 2015-4-24 09:06:41 | 显示全部楼层
遗忘的足迹 发表于 2015-4-23 20:06
LaunchExecutableEx ("*.exe /C full", LE_SHOWMINIMIZED, &g_exeHandle);

需要添加什么头文件吗?还有这样调用的面板可以直接运行它对应的程序吗?
发表于 2015-4-24 09:13:00 | 显示全部楼层
这是调用你编好程序的exe文件,没什么头文件,提前声明一下面板句柄就好。
发表于 2015-4-24 09:14:00 | 显示全部楼层
这是调用你编好程序的exe文件,没什么头文件,提前声明一下面板句柄就好。
 楼主| 发表于 2015-4-24 09:29:34 | 显示全部楼层
{:soso_e121:}好的 我先试试~谢谢啦
 楼主| 发表于 2015-4-24 09:47:21 | 显示全部楼层
遗忘的足迹 发表于 2015-4-24 09:14
这是调用你编好程序的exe文件,没什么头文件,提前声明一下面板句柄就好。

运行不报错了,但是我点击BUTTON然后执行这个语句想调用一个exe就不行,还把电脑跑死了,怎么回事呢
 楼主| 发表于 2015-4-24 09:49:45 | 显示全部楼层
遗忘的足迹 发表于 2015-4-24 09:14
这是调用你编好程序的exe文件,没什么头文件,提前声明一下面板句柄就好。

#include <utility.h>
#include <cvirte.h>  
#include <userint.h>
#include "parent.h"

static int panelHandle;
static int child1;
static int child2;
int main (int argc, char *argv[])
{
if (InitCVIRTE (0, argv, 0) == 0)
  return -1; /* out of memory */
if ((panelHandle = LoadPanel (0, "parent.uir", PANEL)) < 0)
  return -1;
DisplayPanel (panelHandle);
RunUserInterface ();
DiscardPanel (panelHandle);
return 0;
}
int CVICALLBACK COMMANDBUTTON (int panel, int control, int event,
  void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
  case EVENT_COMMIT:
   LaunchExecutableEx ("C meter.ece", LE_SHOWMAXIMIZED, &child1);
   RetireExecutableHandle (child1);
   break;
}
return 0;
}
int CVICALLBACK COMMANDBUTTON_2 (int panel, int control, int event,
  void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
  case EVENT_COMMIT:
   LaunchExecutableEx ("P meter.ece", LE_SHOWMAXIMIZED, &child2);
   RetireExecutableHandle (child2);
   break;
}
return 0;
}
int CVICALLBACK CLOSE (int panel, int control, int event,
  void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
  case EVENT_COMMIT:
   QuitUserInterface (0);
   break;
}
return 0;
}
麻烦你看下我的程序还需要添加什么语句吗
 楼主| 发表于 2015-4-24 09:49:47 | 显示全部楼层
遗忘的足迹 发表于 2015-4-24 09:14
这是调用你编好程序的exe文件,没什么头文件,提前声明一下面板句柄就好。

#include <utility.h>
#include <cvirte.h>  
#include <userint.h>
#include "parent.h"

static int panelHandle;
static int child1;
static int child2;
int main (int argc, char *argv[])
{
if (InitCVIRTE (0, argv, 0) == 0)
  return -1; /* out of memory */
if ((panelHandle = LoadPanel (0, "parent.uir", PANEL)) < 0)
  return -1;
DisplayPanel (panelHandle);
RunUserInterface ();
DiscardPanel (panelHandle);
return 0;
}
int CVICALLBACK COMMANDBUTTON (int panel, int control, int event,
  void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
  case EVENT_COMMIT:
   LaunchExecutableEx ("C meter.ece", LE_SHOWMAXIMIZED, &child1);
   RetireExecutableHandle (child1);
   break;
}
return 0;
}
int CVICALLBACK COMMANDBUTTON_2 (int panel, int control, int event,
  void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
  case EVENT_COMMIT:
   LaunchExecutableEx ("P meter.ece", LE_SHOWMAXIMIZED, &child2);
   RetireExecutableHandle (child2);
   break;
}
return 0;
}
int CVICALLBACK CLOSE (int panel, int control, int event,
  void *callbackData, int eventData1, int eventData2)
{
switch (event)
{
  case EVENT_COMMIT:
   QuitUserInterface (0);
   break;
}
return 0;
}
麻烦你看下我的程序还需要添加什么语句吗
 楼主| 发表于 2015-4-24 10:00:54 | 显示全部楼层
遗忘的足迹 发表于 2015-4-24 09:14
这是调用你编好程序的exe文件,没什么头文件,提前声明一下面板句柄就好。

好使了,谢谢哈
发表于 2015-4-24 20:16:01 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2025-4-5 15:48 , Processed in 0.430046 second(s), 6 queries , Gzip On, File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表