C++控制台程序 启动 控制台程序(以及命令行参数传递)
来源:互联网 发布:遗传算法与工程优化 编辑:程序博客网 时间:2024/06/04 23:29
#include "stdafx.h"
#include <windows.h>
#include <process.h>
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
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.exehttp://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.exehttp://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<<strCommandLine<<endl;
//cout<<argc<<endl;
//cout<<argv[0]<<endl;
//cout<<argv[1]<<endl;
////---------------------------------------
system("pause");
return 0;
}
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 *类型的值是指向“所在程序的文件名的字符串”的指针。
- C++控制台程序 启动 控制台程序(以及命令行参数传递)
- VS2005 控制台程序输入参数
- 向C语言程序传递命令行参数
- 简单控制台程序启动过程
- 控制台和控制台程序
- 控制台的扫雷程序(C语言)
- C#控制台基础 VS2017中为控制台程序设置启动参数(string[] args)
- 控制台程序
- 控制台程序
- 控制台程序
- 控制台程序
- 控制台程序Ctrl +C 退出
- C#:控制台程序界面一闪而过
- C程序修改控制台颜色
- C语言扫雷控制台程序
- 【c#】控制台程序编写计时器
- Linux C解析控制台输入命令行参数
- 控制台程序参数解读(再也不用愁看不懂控制台程序了)
- “base-64 字符数组的无效长度”错误解决方案
- java 快速排序算法--归并排序的实现
- 人力资源管理
- QTableWidget使用
- nginx反向代理负载配置与实方法
- C++控制台程序 启动 控制台程序(以及命令行参数传递)
- linux下C编程学习笔记之线程学习(一)
- QT 生成release版本
- Hibernate配置常见错误
- python学习总结(1)
- C++中的XML配置文件编程经验
- 第八周项目1-分段函数求值(2013级新)
- Android应用:SoundPool 播放音效
- 指针的复杂声明