資訊
The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.

引數定義

原型中的引數

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

允許使用方便命令列剖析的引數,同時可選擇性地存取環境變數。 引數定義如下:

argc

包含 argv 之後引數的計數。 argc 參數永遠會大於或等於 1。

argv

以 null 終止之字串的陣列,表示由程式的使用者所輸入的命令列引數。 依照慣例,argv[0] 是對程式叫用的命令,argv[1] 是第一個命令列引數,依此類推,直到 argv[argc],其永遠為 NULL 如需隱藏命令列處理的詳細資訊,請參閱自訂命令列處理

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

注意事項注意事項

依照慣例,argv[0] 是對程式叫用的命令。不過,您可以使用 CreateProcess 繁衍 (Spawn) 處理序,而如果您同時使用第一個和第二個引數 (lpApplicationNamelpCommandLine),argv[0] 可能不是可執行檔名稱,請使用 GetModuleFileName 擷取可執行檔名稱及其完整檔案路徑。

envp

envp 陣列 (許多 UNIX 系統中常見的擴充功能) 可用於 Microsoft C++。 它是一個字串的陣列,表示在使用者的環境中設定的變數。 這個陣列由 NULL 項目終止。 它可以宣告為 char (char *envp[ ]) 的指標陣列,或宣告為 char (char **envp) 指標的指標。 如果您的程式使用 wmain 而非 main,請使用 wchar_t 資料類型而不是 char 傳遞至 mainwmain 的環境區塊是目前環境的「凍結」複本。 如果您後續透過呼叫 putenv_wputenv 變更環境,則目前環境 (如 getenv/_wgetenv_environ/ _wenviron 變數所傳回) 將會變更,不過 envp 所指向的區塊不會變更。 如需隱藏環境處理的詳細資訊,請參閱自訂命令列處理 此引數在 C 中可與 ANSI 相容,但是在 C++ 中則不相容。

下列範例顯示如何使用 mainargcargvenvp 引數:

// 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";
    }
}

社群新增項目

顯示:
© 2015 Microsoft