我有一个Windows CE控制台应用程序,其入口点如下所示
int _tmain(int argc, _TCHAR* argv[])
我想检查argv[1]
转换"-s"
argv[2]
的内容为整数。我无法缩小参数或访问它们进行测试。
我最初尝试了以下但收效甚微
if (argv[1] == L"-s")
我还尝试在每个字符上使用narrow
wostringstream
函数,但这会导致应用程序崩溃。
任何人都能解开一些光明吗? 感谢
答案 0 :(得分:7)
应该是:
if (_tcscmp(argv[1], _T("-s")) == 0)
答案 1 :(得分:3)
if (argv[1] == L"-s")
即使对于比较指针的窄字符串,这也是不正确的。你需要
if(wcscmp(argv[1],L"-s")==0)
或
if(std::wstring(argv[1])==L"-s")
答案 2 :(得分:0)
argv
是char*
的数组,而不是string
,因此与==的通常比较将无效。 if语句比较两个指针。你能构建一个wstring
,然后进行比较吗?
if (wstring(argv[1]) == L"-s")
答案 3 :(得分:0)
您可能需要将argv []条目转换为字符串然后进行比较。 [链接文字] [1]
http://www.codeproject.com/Tips/81778/Converting-TCHAR-to-string-while-getting-PC-Name.aspx
[1]:
如果您可以转换为字符串,则上述链接会有所帮助。