http://blog.csdn.net/sdcxyz/article/details/13631613

1例程

1.1面向过程例程如下:

#include <iostream>
#include<windows.h>
#pragma comment(lib, "Kernel32.lib")
using namespace std;
int main()
{

	STARTUPINFO si; //一些必备参数设置
	memset(&si, 0, sizeof(STARTUPINFO));
	si.cb = sizeof(STARTUPINFO);
	si.dwFlags = STARTF_USESHOWWINDOW;
	si.wShowWindow = SW_SHOW;
	PROCESS_INFORMATION pi; //必备参数设置结束
	//if (!CreateProcess(NULL, "\"C:\\Program Files\\MyApp.exe\"" NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) //8888为命令行参数,ExcuteApp.exe为当前目录下的一个exe文件。
	if (!CreateProcess(NULL, "\"F:\\0tool\\转换器\\FormatFactory\\FormatFactory.exe\"" ,NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) //8888为命令行参数,ExcuteApp.exe为当前目录下的一个exe文件。  

	{
		cout << "Create Fail!" << endl;
		exit(1);
	}
	else
	{
		cout << "Sucess!" << endl;
	}
	return 0;
}

1.2面向对象例程如下:

EXELoal.h

#pragma once
//主函数:
#include<windows.h>
#include "atlstr.h"
//#include "string"
#pragma comment(lib, "Kernel32.lib")  

class EXELoad
{
public:
	EXELoad(CString filename);

	STARTUPINFO si; //一些必备参数设置
	PROCESS_INFORMATION pi; //必备参数设置结束
	CString filename;
};

EXELoal.cpp

//实现文件
#include <iostream>
#include "EXELoal.h"
#pragma comment(lib, "Kernel32.lib")  

EXELoad::EXELoad(CString filename)
{

	memset(&si, 0, sizeof(STARTUPINFO));
	si.cb = sizeof(STARTUPINFO);
	si.dwFlags = STARTF_USESHOWWINDOW;
	si.wShowWindow = SW_SHOW;
	//std::string file(filename.GetBuffer(0));
	if (!CreateProcess(NULL, filename.GetBuffer(0), NULL, NULL, FALSE, 0, NULL, NULL, &si, &pi)) //8888为命令行参数          //CreateProcess(NULL,”\”C:\\Program Files\\MyApp.exe\” -L -S”,…….)        //- L和 - S是MyApp.exe可执行文件的参数。
	{
		std::cout << "模拟器未加载成功" << std::endl;
		exit(1);
	}
}

 主函数调用exe2.cpp

#include "EXELoal.h""
int main()
{
	//CString strfileName("ExcuteApp.exe 8888");、       //CreateProcess(NULL,”\”C:\\Program Files\\MyApp.exe\” -L -S”,…….)        //- L和 - S是MyApp.exe可执行文件的参数。
        // CString strfileName("\"F:\\2Project\\YOLO\\yolo2\\YOLO_RECT3\\darknet-rect1\\build\\darknet\\x64\\darknet-rect1.exe\" detector demo F:/2Project/YOLO/yolo2/3data/TestData/data/voc.data F:/2Project/YOLO/yolo2/3data/TestData/cfg/yolo-voc.cfg F:/2Project/YOLO/yolo2/3data/TestData/weight/yolo-voc.weights");
	CString strfileName("\"F:\\0tool\\转换器\\FormatFactory\\FormatFactory.exe\"");
	EXELoad* ExeLoad = new EXELoad(strfileName);
	return 0;
};

2 原理讲解

c++ 启动exe(启动别的exe程序)的更多相关文章

  1. 应用程序启动后修改自身EXE文件或自删除EXE文件(附VC++6.0源码)

    在CSDN论坛看到这么一个问题:如何为第三方工具加上使用限制次数?问题的答案很简单,重新做一个应用程序,将第三方程序打包进这个应用程序,启动应用程序时可以检查第三方工具的使用次数,检查通过,可运行第三 ...

  2. 更改开机默认不显示explorer.exe,直接启动自己写的EXE程序方法

    原文:更改开机默认不显示explorer.exe,直接启动自己写的EXE程序方法 更改开机默认不显示explorer.exe,直接启动自己写的EXE程序的函数: bool UpdateWinlogon ...

  3. instsrv.exe srvany.exe启动服务

    1.通过注册表注册服务 private static readonly string regpath = @"SYSTEM\CurrentControlSet\Services\Consul ...

  4. cmd.exe启动参数说明

    启动命令解释程序 Cmd.exe 的新范例.如果在不含参数的情况下使用,cmd 将显示操作系统的版本和版权信息. 语法 cmd [{/c | /k}] [/s] [/q] [/d] [{/a | /u ...

  5. mac mono Fiddler.exe启动失败

    mono version 5.4 fiddler version 4.6 启动fiddler:mono Fiddler.exe 启动报错 WARNING: The Carbon driver has ...

  6. [Tomcat]无法使用tomcat6.exe启动服务解决办法, The system cannot find the Registry key for service 'tomcat7'

    重新配置环境变量后,可以使用startup.bat启动服务, 但是无法使用tomcat6.exe启动服务, 错误信息: [2011-03-10 18:51:49] [warn]  The system ...

  7. 【UE4 C++】资源烘焙与UE4Editor.exe启动

    资源烘焙 虚幻引擎以内部使用的特定格式存储内容资源,将内容从内部格式转换为特定于平台的格式的过程 称为 烘焙((Cooking) 从编辑器烘焙资源 FIle → Cook Content for Wi ...

  8. nginx.exe启动错误:bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)

    启动nginx.ese之后 nginx: [emerg] bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a soc ...

  9. WIN8,开机启动 需要管理员权限的程序

    1. 用WPF开发,需要管理员权限并开机启动,以写注册表的方式实现.仅写注册表只能启动一般权限的程序. 2. 考虑这样实现: 程序以一般权限启动,启动以后申请管理员权限. 实现: App类中重写OnS ...

  10. Windows启动谷歌浏览器Chrome失败(应用程序无法启动,因为应用程序的并行配置不正确)解决方法

    目录 一.系统环境 二.问题描述 三.解决方法 一.系统环境 Windows版本 系统类型 浏览器Chrome版本 Windows 10 专业版 64 位操作系统, 基于 x64 的处理器 版本 10 ...

随机推荐

  1. Mini2440 通过 SPI 操作 OLED (裸板下使用 SPI 控制器)

    在裸板下使用 SPI 的话,有两种方法可选: 使用 IO 口模拟 SPI 进行操作 使用 SPI 控制器进行操作 这里我们选用控制器的方式,简单方便. 初始化 SPI static void SPIC ...

  2. [转]nodejs之cordova 跨平台开发

    本文转自:https://blog.csdn.net/bubuxindong/article/details/53787392 cordova原名phonegap,虽然adobe收购了phonegap ...

  3. MVC 【Razor 视图引擎】基础操作 --页面跳转,传值,表单提交

    ASPX  与  Razor  仅仅是视图不一样. 新建项目----ASP.NET MVC 4 Web 应用程序------选择模板(空).视图引擎(Razor ) 1.视图中 c# 代码  与 HT ...

  4. 还需要注册的是我们还有一个是“交差集” cross join, 这种Join没有办法用文式图表示,因为其就是把表A和表B的数据进行一个N*M的组合,即笛卡尔积。表达式如下:

             还需要注册的是我们还有一个是"交差集" cross join, 这种Join没有办法用文式图表示,因为其就是把表A和表B的数据进行一个N*M的组合,即笛卡尔积.表 ...

  5. EF select 匿名类 问题

    连续两次被相同问题困扰. 一.举例 var query=db.StudentScore.Where(r=> r.SubjectId==subjectId).Select(g=>new {S ...

  6. [PHP] 数据结构-反转链表PHP实现

    1.常见方法分为迭代和递归,迭代是从头到尾,递归是从尾到头2.设置两个指针,old和new,每一项添加在new的后面,新链表头指针指向新的链表头3.old->next不能直接指向new,而是应该 ...

  7. Django Rest Framework之解析器

    基本代码结构 urls.py: from django.conf.urls import url, include from web.views.s5_parser import TestView u ...

  8. Python全栈学习_day007作业

    Day7作业及默写 .把列表中所有姓周的人的信息删掉(升级题:此题有坑, 请慎重): 第一种方法:lst = ['周老二', '周星星', '麻花藤', '周扒皮'] # 结果: lst = ['麻花 ...

  9. Git应用—03分支管理和冲突解决(转载)

    Git 分支管理和冲突解决 https://www.cnblogs.com/mengdd/p/3585038.html 创建分支 git branch 没有参数,显示本地版本库中所有的本地分支名称. ...

  10. python自动化开发-6

    python的常用模块(续) shutil模块:主要是做文件复制的.文件,文件夹,压缩包等的处理模块. 常用的方法: shutil.copyfileobj:将文件的内容拷贝到另一个文件中. 例子: # ...