引數定義

在原型中的引數。

int main( int argc[ , char *argv[ ] [, char *envp[ ] ] ] );
int wmain( int argc[ , wchar_t *argv[ ] [, wchar_t *envp[ ] ] ] );

允許方便剖析命令列引數,並且,或者,存取環境變數。 引數定義如下:

  • argc
    包含 count 引數在 argv遵循的整數。 argc 參數永遠大於或等於為。

  • argv
    代表命令列引數的陣列以 null 結尾的字串輸入由程式的使用者。 依照慣例, argv**[0]** 是程式叫用的命令, argv**[1]** 是第一個命令列引數,依此類推,直到 argv**[]**argc,永遠 空值。 如需隱藏命令列處理的詳細資訊,請參閱 自訂命令列處理

    第一個命令列引數一定是 argv**[1]** ,而最後一個是 argv**[**argc – [1]。

    注意事項注意事項

    依照慣例, argv[0] 是程式叫用的命令。不過,產生流程使用 CreateProcess 和,如果您使用第一個和第二個引數 (lpApplicationName 和 lpCommandLine) 則為, argv[0] 可能不是可執行檔名稱;使用 GetModuleFileName 擷取可執行檔名稱和完整路徑。

Microsoft 專有的

  • envp
    envp 陣列,是在大部分 UNIX 系統的通用副檔名,用於 Microsoft C++。 它是代表變數的陣列字串設定使用者環境。 這個陣列。 空值 輸入終止。 它可以宣告為陣列指標 char (char *envp**)** 或做為指標到指標 char (char ** envp**)。 如果您的程式使用 wmain 而非 main,請使用 wchar_t 資料型別而不是 char。 環境區塊傳遞至 main ,而且 wmain 是目前環境的「凍結的」複本。 如果您藉由呼叫之後可以變更環境與 putenv_wputenv,目前的環境 (如傳回 getenv/_wgetenv** 和 _environ/ _wenviron 變數) 將變更為,不過, envp 點的區塊不會變更。 如需隱藏環境所管理的詳細資訊,請參閱 自訂命令列處理 。 這個引數為 ANSI 相容於 C,但是,在 C++ 中。

範例

下列範例顯示如何使用 argc、 argv和 envp 引數到 main:

// argument_definitions.cpp
// compile with: /EHsc
#include <iostream>
#include <string.h>

using namespace std;
int main( int argc, char *argv[], char *envp[] ) {
    int iNumberLines = 0;    // Default is no line numbers.

    // If /n is passed to the .exe, display numbered listing
    // of environment variables.

    if ( (argc == 2) && _stricmp( argv[1], "/n" ) == 0 )
         iNumberLines = 1;

    // Walk through list of strings until a NULL is encountered.
    for( int i = 0; envp[i] != NULL; ++i ) {
        if( iNumberLines )
            cout << i << ": " << envp[i] << "\n";
    }
}

請參閱

參考

主要: 程式啟動