我创建了一个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并且检查输出是你好但我不知道他们为什么不等于请帮助 提前谢谢
答案 0 :(得分:3)
这不是在C ++中比较两个字符串的正确方法。
鉴于您要将TCHAR
数组与LPTSTR
进行比较,请致电_tcscmp
,而不是使用==
运算符。
答案 1 :(得分:2)
if(args==checking)
会比较指针 args
和checking
。由于他们指向不同的地方,因此不满足条件。你想要的是字符串比较,因为你需要使用像_tcscmp
这样的函数。