Приветствую Вас Гость | RSS

Четверг, 09.05.2024, 05:38
Главная » 2011 » Август » 25 » Windows Api и Qt - возня с символьными типами
15:54
Windows Api и Qt - возня с символьными типами
Пример может касаться типов char, WCHAR, wchar_t, LPTSTR и прочей подобной нечисти. В результате каким-то чудесным образом из них надо получить QString. Понадобилось для функции GetComputerName. Вот получившийся у меня рабочий пример:

//смотрим имя компьютера
WCHAR hostname[254];
unsigned long name_length = sizeof(hostname);
GetComputerName(hostname, &name_length);
QChar* c = (QChar*)&hostname;
this->setWindowTitle(QString(c));

А это исправленный код от одного доброго дракона, спасибо ему
WCHAR hostname[MAX_COMPUTERNAME_LENGTH + 1];
unsigned long name_length = _countof(hostname);
GetComputerName(hostname, &name_length);
QChar* c = (QChar*)&hostname;
Просмотров: 855 | Добавил: intell | Рейтинг: 0.0/0
Всего комментариев: 2
2 intell  
0
KindDragon спасибо, щас поправлю. Просто в своё время для программы подходящего куска кода не нашёл, поэтому сюда записал то что просто работало.

1 KindDragon  
0
Несовсем корректно, в GetComputerName передается не размер буфера, а кол-во символов.
Так корректней я думаю:
WCHAR hostname[MAX_COMPUTERNAME_LENGTH + 1];
unsigned long name_length = _countof(hostname);
GetComputerName(hostname, &name_length);
QChar* c = (QChar*)&hostname;

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]