Если str
английская, вроде все нормально. А вот на русском не находит окно:
QString str = "Этот компьютер";
LPCSTR lstr = str.toStdString().c_str();
HWND hwnd = FindWindowA(NULL, lstr);
Для узких char
и широких wchar_t
строк в WinAPI используются разные функции. Подробнее можно прочитать в моём ответе на связанный вопрос: char* to LPWSTR.
Здесь же происходит следующее: QString::toStdString
преобразует строку "Этот компьютер"
, которая хранится внутри QString
как набор 16-битных символов (т.е. QChar
) в последовательность символов char
(1 байт) с помощью функции toUtf8
. А так как FindWindowA
ждёт строку в однобайтовой (локальной) кодировке, то UTF-8 (мультибайтовая) строка для неё не подходит.
Наиболее правильным решением будет использование строк широких символов и функции QString:toStdWString
.
QString str = "Этот компьютер";
LPWSTR lstr = str.toStdWString().c_str();
HWND hwnd = FindWindowW(NULL, lstr);
Хотя, вероятно, сработал бы и вариант с использованием локальной кодировки (QString::toLocal8Bit
) .
QString str = "Этот компьютер";
LPCSTR lstr = str.toLocal8Bit().data();
HWND hwnd = FindWindowA(NULL, lstr);
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Виртуальный выделенный сервер (VDS) становится отличным выбором
В общем, есть div с произвольным количеством дочерних div-овНужно реализовать выбор/мультивыбор дочерних div (на подобии выбора файлов в проводнике)
Здравствуйте, для реализации кнопки с выпадающим меню для мобильных устройств написал простую функцию: