晗昕 发表于 2015-4-23 16:49:23

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

如题,已经做好了两个工程,希望把它们通过一个主面板调用,主面板里有两个按钮分别打开两个工程中的面板,用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

没事,互相学习
页: [1]
查看完整版本: 新人求助:如何在Labwindows中一个主面板中调用其他面板?