2010-08-08 66 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