调用进程

void CSerialCommunicationTestDlg::start_method(char * method_exe, char * parameter,int x,int y,int z)//运行PSO程序
{
	SHELLEXECUTEINFO sei;
	printf("parameter=%s\n", parameter);

	// 启动进程
	WCHAR exe[MAXLEN_NAME];
	swprintf_s(exe, L"D:\\PSOtest\\PSOtest\\PSO1\\Release\\PSO.exe", method_exe);//D:\\PSOtest\\PSOtest\\PSO1\\Release\\PSO.exe//E:\PSOtest\PSOtest\data_process\R0
	//LPCWSTR m_szFilename = wsz;
	char parameter1[1000];
	sprintf_s(parameter1, "%d %d %d %d %f %f %f %d %d %d %f %f %f %s %d %d %d %d %d %d %d %d %d %s %s", x,y,z,6,0.123,-2000.0,2000.0,6,1000,50,2.0,2.0,1.7,"./",3,1,64,80,0,0,1,60,10, "../../opt_filter_structure_module/Release/opt_filter_structure_module.dll", "DE");
	//sprintf_s(parameter1, "%d %d %d %d %f %f %f %d %d %d %f %f %f", x, y, z, 6, 0.123, -2000.0, 2000.0, 6, 1000, 50, 2.0, 2.0, 1.7);

	WCHAR par[MAXLEN_NAME];
	swprintf_s(par, L"%S", parameter1);

	ZeroMemory(&sei, sizeof(SHELLEXECUTEINFO));
	sei.cbSize = sizeof(SHELLEXECUTEINFO);
	sei.fMask = SEE_MASK_NOCLOSEPROCESS;
	sei.hwnd = NULL;
	sei.lpVerb = _T("open");
	sei.lpFile = exe;//_T("D:\\PSOtest\\PSOtest\\PSO1\\Release\\PSO.exe");
	sei.lpParameters = par;
	sei.lpDirectory = NULL;
	sei.nShow = SW_SHOW;
	sei.hInstApp = NULL;
	ShellExecuteEx(&sei);
	// 加入下面这句就是等待该进程结束
	WaitForSingleObject(sei.hProcess, INFINITE);//comment this sentence is equel to parallel; otherwise cascade
	printf("%s process is over!\n", method_exe);
	
	CString solution;
	solution =ReadFitnessFromFiles("PSO_best_code");//"D:\\Cktsds\\SerialCommunicationTest\\PSO_best_code"
	m_SerialPort.WriteToPort(solution);

	has_started = false;
}


void CSerialCommunicationTestDlg::OnCbnSelchangeComboBaud()//波特率选择对话框
{
	// TODO: 在此添加控件通知处理程序代码
	int Index;
	CString strCBText;
	Index = m_CommBaud.GetCurSel();
	m_CommBaud.GetLBText(Index, strCBText);
	edit_recv += strCBText;
	m_BaudNo = atoi((LPSTR)(LPCTSTR)strCBText);
	SetDlgItemText(IDC_EDIT_RECV, edit_recv);
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值