Спосибо за ответ q_q. Извени я не полностью раскрыл вопрос, на том этапе мне казалась проблема в кодировке, но время идет . Собственно UNICODE возвращается после отработки NetQueryDisplayInformation в системный буфер, и тут начинаются кракозябли.Я эту функцию использую для просмотра сети, уровень устанавливаю 2, возвращается структура, .usri2_name не получается отобразить "нормально" Макрос: UNITOASCII MACRO STRINGADD1,STRINGADD2 push edx push ecx mov ecx,STRINGADD1 mov edx,STRINGADD2 @@: mov ax,WORD PTR [ecx] mov [edx],al add edx,1 add ecx,2 cmp ax,0 jne @b pop ecx pop edx ENDM Вызов из секции кода: UNITOASCII offset UnicodeString,offset Buffer
Dima Расшифруй термин отобразить. На экране? Твоего кода не достаточно, т.к. не видно описания/определния UnicodeString и Buffer. Ты уверен, что NetQueryDisplayInformation отрабатывает успешно? Imho макрос - "нехороший", я использую Код (Text): WideCharToChar mov eax,[esp+04h] ;; адрес UNICODE-строки push eax push -1 push eax call IsBadStringPtrW or eax,eax pop eax jnz short @1 push eax call lstrlenW inc eax jz short @2 push eax push eax push 40h ;; GMEM_FIXED or GMEM_ZEROINIT call GlobalAlloc pop ecx or eax,eax jz short @2 mov edx,[esp+04h] push eax push 0 push 0 push ecx push eax push -1 push edx push 0 push CP_ACP call WideCharToMultiByte or eax,eax pop eax jnz short @2 push eax call GlobalFree @1: xor eax,eax @2: ret 4 WideCharToChar endp
Согласен, твой код лучше. NetQueryDisplayInformation отрабатывает правильно т.к. получаю ошибку ERROR_MORE_DATA и дальше у меня проблемы с пониманием извлечения структуры NET_DISPLAY_...,в программе на С это очень просто(пример в MSDN-> NetQueryDisplayInformation тоько он карявый, рабочий есть по NetServerEnum)в обоих случаях они объявляют 2структуры NET_DISPLAY_GROUP(SERVER_INFO_101) и копируют адрес(?) полученный в другую структуру, это получается, не получается вывести на дисплэй имена компьютеров(или вообще к ним добраться выводит что-то типа ??";№ - чёрти что)
А что мешает читать в буфер вимволы через один? 1,3,5...,n пока не встретишь нулевое слово, т.е. два байта нулей... ... ... Или вообще для "отображения" использовать UNICODE функции?
> или SetWindowTextU? Этой точно нет. А юникодовая MessageBox в 9х сводится к ASCII варианту после преобразования строк.
Dima не получается вывести на дисплэй Если что-то не получается, то покажи код. Про вывод для GUI-app написали. В аттаче смотри про вывод для CON-app. _444456153__demoNQDIA.rar