OS之Windows API创建子进程(C VS 2008)

调用Windows API创建创建子进程,CreateProcess命令行参数不能直接使用字符串(貌似更高版本的VS没这方面的烦恼)。

#include<stdio.h>
#include<string.h>
#include<windows.h>

int
main(void)
{
	STARTUPINFO si;
	PROCESS_INFORMATION pi;
	TCHAR scommand[] = TEXT("C:\\WINDOWS\\system32\\mspaint.exe");

	/*
	** allocate memory
	*/
	ZeroMemory(&si, sizeof(si));
	si.cb = sizeof(si);
	ZeroMemory(&pi, sizeof(pi));

	/*
	** create child process
	*/
	if(!CreateProcess(NULL,
		scommand, // 直接使用参数"C:\\WINDOWS\\system32\\mspaint.exe"
		NULL,
		NULL,
		FALSE,
		0,
		NULL,
		NULL,
		&si,
		&pi))
	{
		fprintf(stderr, "Create Process Failed");
		return -1;
	}

	/*
	** parent will wait for the child to complete
	*/
	WaitForSingleObject(pi.hProcess, INFINITE);
	printf("Child Complete\n");

	/*
	** close handles
	*/
	CloseHandle(pi.hProcess);
	CloseHandle(pi.hThread);
}

直接使用字符串作为参数,报出的错误。详细原因参考:http://blog.csdn.net/hgy413/article/details/6200983

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值