#include "stdafx.h"
#include
#include
#include "stdafx.h"
#include
#include
int main(int argc, char* argv[])
{
STARTUPINFO si = { sizeof(si) };
PROCESS_INFORMATION pi;
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = TRUE; //TRUE表示显示创建的进程的窗口
TCHAR cmdline[] =TEXT("D://Projects//RealPlayTestMFC//Debug//RealPlayDecode.exe http://community.csdn.net/");
BOOL bRet = ::CreateProcess (
NULL,
cmdline, //在Unicode版本中此参数不能为常量字符串,因为此参数会被修改
NULL,
NULL,
FALSE,
CREATE_NEW_CONSOLE,
NULL,
NULL,
&si,
&pi);
//TCHAR cmdline[] =TEXT("D://Projects//RealPlayTestMFC//Debug//RealPlayDecode.exe http://community.csdn.net/");
//BOOL bRet = ::CreateProcess (
// "D://Projects//RealPlayTestMFC//Debug//RealPlayDecode.exe",
// "http://community.csdn.net/", //在Unicode版本中此参数不能为常量字符串,因为此参数会被修改
// NULL,
// NULL,
// FALSE,
// CREATE_NEW_CONSOLE,
// NULL,
// NULL,
// &si,
// &pi);
//TCHAR cmdline[] =TEXT("D://Projects//RealPlayTestMFC//Debug//RealPlayDecode.exe http://community.csdn.net/");
//BOOL bRet = ::CreateProcess (
// L"D://work//Dll//ICE//SRC//NetLibServer//Debug//IceServerHCAPP.exe",
// NULL, //在Unicode版本中此参数不能为常量字符串,因为此参数会被修改
// NULL,
// NULL,
// FALSE,
// CREATE_NEW_CONSOLE,
// NULL,
// NULL,
// &si,
// &pi);
int error = GetLastError();
if(bRet)
{
::CloseHandle (pi.hThread);
::CloseHandle (pi.hProcess);
printf(" 新进程的进程ID号:%d /n", pi.dwProcessId);
printf(" 新进程的主线程ID号:%d /n", pi.dwThreadId);
}
else
{
printf("error code:%d/n",error );
}
return 0;
}
int _tmain(/*int argc, _TCHAR* argv[]*/)
{
const char * strCommandLine = GetCommandLine();
cout< //cout< C++控制台程序使用main作为入口函数,原型如下: int main(int argc, char *argv[]); 其中argc表示argv这个字符串数组的元素个数,而argv[0]表示的是这个程序本身的文件名,argv[1]表示的是第一个参数,argv[2]表示的是第二个参数。。。 那么我请问,argv[0]表示的是这个程序本身的文件名 这句话,也就是说,如果我开发服务端的哪个程序,也就是UPDServer[0] 这么写? 还有在main函数里面定义的int argc 需要在int main{} 里面再指定 个数吗? 还有 那个名字是规定的吗? 。。。 argv这个是形参的名称,名称你也可以自己改,不过一般是用的argv。 我所说的“argv[0]表示的是这个程序本身的文件名”,说的是argv[0]这个char *类型的值是指向“所在程序的文件名的字符串”的指针。
system("pause");
return 0;
}