· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Unicode не Unicode?

Посл.отвђт Сообщенiе


Дата: Дек 9, 2003 10:01:53

Здравствуйте!
В конторе понадобился NetPopUp и я решил эту идею, так сказть, реализовать. Взял функцию NetMessageBufferSend, всё прочёл о ней, кое-как заполнил и .. как обчыно. Ничё не работает. После второго прочтения, я нашёл, что строки:
LPTSTR servername,	
      LPTSTR msgname,	
      LPTSTR fromname,

Должны быть в уникоде. Вопрос в следующем:
я получаю строку из буфера в первое значение:
namebuffer dw 512 dup(?)
- так правильно для уникода?
Или нужно перекодировать с помощью макроса строку? А как использовать его, макрос, для буфера?
(Может быть моя мысля, как всегда, ошибочна:
namebuffer dw 512 dup(?)
textbuffer db 512 dup(?)
.code
....
invoke GetDlgItemText,hWnd,IDC_ENETNAME,ADDRnamebuffer,512
invoke GetDlgItemText,hWnd,IDC_EMESSAGE,ADDRtextbuffer,512
invoke lstrlen, ADDR textbuffer
mov hLen, eax
invoke NetMessageBufferSend,ADDR namebuffer, -сомневаюсь вот здесь -, NULL,ADDR textbuffer, hLen
)
Заранее спасибо.
1990.


Дата: Дек 9, 2003 12:14:13 · Поправил: q_q

1990
После второго прочтения, я нашёл ...
А у меня в документации LPCWSTR.

правильно для уникода?
Для unicode надо под каждый символ выделять два байта.

Не понимаю, о каком макросе ты говоришь, я знаю только api'шные MultiByteToWideChar и WideCharToMultiByte


Дата: Дек 9, 2003 12:20:53

q_q
Странно, а у меня в доках по апи есть только такое - могу принт скриин послать. ;-)
Для unicode надо под каждый символ выделять два байта. - ...
А никак иначе функцию эту реализовать нельзя. С Unicode я вообще не знаком.
В форуме есть несколько таких примеров.
А как поправить ситуацию? ;)


Дата: Дек 9, 2003 12:32:39

1990
Какие такие у меня в доках по апи?
Есть только NetMessageBufferSend.

А никак иначе функцию эту реализовать нельзя.
Какую?


Дата: Дек 9, 2003 13:38:09

q_q
Спасибо за ссылку, но я не совсем понял смысл. Нужен там вообще Unicode? Ничего явного не сказано. Подскажи, как же мне записать эту функцию правильно. тут, видимо, нужно как-то организовать буффер для данных.
Дай мне свой майл - я могу прислать исходник, он маленький совсем.
Спасибо.


Дата: Дек 9, 2003 13:43:11 · Поправил: Four-F

Вызывай GetDlgItemTextW. Она вернёт те unicode-строку, а lstrlenW её длину.


Дата: Дек 9, 2003 16:40:24

Four-F
Не могу найти функцию. Какой должен быть инклуд? Нигде нет описания. Подскажи.


Дата: Дек 9, 2003 17:21:01

GetDlgItemTextW PROTO :DWORD,:DWORD,:DWORD,:DWORD

Описание смотри на GetDlgItemText.


Дата: Дек 9, 2003 18:51:01

Asterix
Не совсем понимаю, как это будет работать. Нужен же какой-нить либ?


Дата: Дек 9, 2003 19:01:17

1990

lib'а - user32.lib
инклуд - user32.inc
или просто напиши в исходнике
GetDlgItemTextW PROTO :DWORD,:DWORD,:DWORD,:DWORD
можешь также воспользоватся инклудами от Edmond'а.
Вызывать
invoke GetDlgItemTextW,...,...,...,...


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.096