簡體   English   中英

C ++ _TCHAR *到std :: string

[英]C++ _TCHAR* to std::string

我用C ++創建了一個項目,然后創建了VS2010

int _tmain(int argc, _TCHAR* argv[])
{

string sInput;
string sOutput;
int iMode=0;

if (argc==3)
{
    if (strcmp(argv[0], "-e")==0)
    {
        iMode = 1;
    } 
    else if (strcmp(argv[0], "-d")==0)
    {
        iMode =2;
    }
    sInput=argv[1];
    sOutput=argv[2];
}
}

如您所見,我想將args視為字符串,但是我不確定如何從_TCHAR *轉換為std :: string。

有人可以幫忙嗎? 非常感謝你!

命令行參數的最簡單方法是選擇是否希望它們支持寬字符串。 如果沒有,這很容易:

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

但是,如果您需要它們,事情會變得有些復雜,但不會那么復雜。 MSVC有一些_wmain或其他變體,但是它是非標准的。 我更喜歡標准的主要簽名。 你可以這樣做:

int main() {
    PWSTR cmdLine = GetCommandLineW();

    int argc;
    PWSTR *argv = CommandLineToArgvW(cmdLine, &argc);
}

整個TCHAR混亂都非常令人討厭。 如果想要寬字符串支持,最好只使用寬字符串,否則不要使用窄字符串。 當處理其他Windows API函數時,我強烈建議輸入和輸出的所有內容都應包含很大的字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM