2010-08-09 1 views
1

Я создал окно win32, это прекрасно работает, но я пытаюсь получить аргумент команды, используя lpcmdline. она работает нормально, но когда я пытаюсь сравнить его в строку, чтобы это действительно работает здесь является сравнение кодаarguments problem help

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 
} 

хорошо, когда я COUT как varabiles они тот же результат, как арг является привет и проверка выходной привет, но я не знаю, почему они не получают равных, пожалуйста, помогите заранее заблаговременно

ответ

3

Это неправильный способ сравнить две строки на C++.

Учитывая, что вы сравниваете массив TCHAR с LPTSTR, звоните _tcscmp вместо использования оператора ==.

2

if(args==checking) сравнивает указателиargs и checking. Поскольку они указывают на разные места, условие не выполняется. То, что вы хотите, это сравнение строк, для этого вам нужно использовать функцию, например, _tcscmp.