繁体   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