2010-08-08 69 views
1

我知道如何启动过程与参数,但即时尝试创建一个程序,使用这个参数。例如IE8使用Process :: Start(“IExplore.exe”,“google.com”);作为打开与google.com网站的新窗口的参数。我希望我的程序使用参数发送它,但我不知道如何获得参数。像Process :: Start(“myprogram.exe”,“TURE”);我想我的程序,以获得自命 由于事先 拉米c + +启动过程与参数

+1

你有一个介绍C++的书?如果你这样做,这可能在第一章的其中一章中介绍过。如果你不这样做,你应该考虑获取[The Definitive C++ Book Guide and List]中列出的介绍性书籍之一(http://stackoverflow.com/questions/388242/the-definitive-c++-book-and-and -list)。 – 2010-08-08 20:55:12

回答

2

假设你写你的切入点是这样的:

int main(int argc, char* argv[]) 

然后argc是用于调用程序和argv是实际参数参数的个数。

试试看:

#include <cstdio> 

int main(int argc, char* argv[]) 
{ 
    for (int i = 0; i < argc; ++i) 
     printf("%s\n", argv[i]); 
} 
+0

即使即时使用gui模式,这工作吗? – Ramilol 2010-08-08 22:57:41

+0

如果您使用Windows入口点:'int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)',那么'lpCmdLine'是命令行,'nCmdShow'是参数的数量。 – 2010-08-09 02:08:07

-1
#include <stdlib.h> 
... 
system("IExplore.exe google.com"); 
4

有两种选择,这取决于你正在构建什么样的程序。

  • 如果你的程序是一个控制台程序,使用argcargv参数传递给你的main()
  • 如果您的程序是GUI模式程序,请使用传递给您的WinMain()的参数pCmdLine

无论哪种情况,您都可以使用GetCommandLine()

+3

GetCommandLine()虽然是windows特有的,但不便携,所以使用argc/argv通常是首选。 – 2010-08-08 21:23:33

+0

这是正确的。我认为OP很明显是使用Windows。 – 2010-08-08 21:38:53

+0

我应该选择第二选择吗? – Ramilol 2010-08-08 22:58:01