Сравнение 2-х массивов wchar_t - PullRequest
6 голосов
/ 05 октября 2011

Я уверен, что это так просто, но я пришел из c # фона, где строки легки, и теперь я совершаю небольшое путешествие в неуправляемый мир, я очень растерялся.

По сути, я использую EnumDisplayDevices для отображения списка доступных устройств, я хочу настроить таргетинг на определенный адаптер, поэтому мне нужно сравнить DeviceString и DeviceName с некоторыми известными значениями, чтобы определить, есть ли у меня подходящий адаптер для работы.

Но я в тупике, я определил известное значение как таковое ...

wchar_t devName[] = L"Intel(R) HD Graphics Family";

но прямое сравнение не работает - if(devName == theDisplay.DeviceName)

strcmp, похоже, не работает с широкими символами, поэтому я понятия не имею, что делать, кто-нибудь знает, как это сделать, пожалуйста?

Спасибо

Ответы [ 2 ]

11 голосов
/ 05 октября 2011

Используйте std::wstring, у него есть operator==.

10 голосов
/ 05 октября 2011

Если вы посмотрите справку Visual Studio для strcmp, вы найдете 3 списка функций для сравнения строк: strcmp, wcscmp и _mbscmp. То, что вы ищете, это wcscmp.

...