争论问题的帮助

时间:2010-08-09 08:39:00

标签: c++ visual-c++ command-line winapi arguments

我创建了一个win32窗口,它运行正常,但我试着使用lpcmdline获取命令参数。它工作正常,但当我尝试将它与字符串进行比较时,它在这里工作的是比较代码

TCHAR checking[]=_T("hello"); 
if(args==checking) // args equals lpcmdline like this LPTSTR args=lpcmdline
{
    TCHAR greeting[]=_T("heys");
}
else
{
    MessageBox(NULL,args,L"1",MB_OK);
    /*if args doesn't equal checking tha cout what is inside args*/
    MessageBox(NULL,checking,L"2",MB_OK);
    //cout checking
}

当我和两个varabiles相同时,他们就像args输出一样hello并且检查输出是你好但我不知道他们为什么不等于请帮助 提前谢谢

2 个答案:

答案 0 :(得分:3)

这不是在C ++中比较两个字符串的正确方法。

鉴于您要将TCHAR数组与LPTSTR进行比较,请致电_tcscmp,而不是使用==运算符。

答案 1 :(得分:2)

if(args==checking)会比较指针 argschecking。由于他们指向不同的地方,因此不满足条件。你想要的是字符串比较,因为你需要使用像_tcscmp这样的函数。