Показать сообщение отдельно
Старый 11.01.2012, 04:36   #11
Рыцарь
 
Аватар для Morfik
 
Регистрация: 13.10.2009
Сообщений: 665
Сказал Спасибо: 38
Имеет 172 спасибок в 108 сообщенях
Morfik пока неопределено
По умолчанию

Цитата:
Сообщение от supernewbie Посмотреть сообщение
кстати додумался как круче делать - string(pchar(@pck[байт с которого идёт строка]));
кто-нить видит подводные камни?
widestring(pwidechar(@pck[байт с которого идёт строка]));
или
string(PWideToString(pwidechar(@pck[байт с которого идёт строка])));

хотя я делал так
widestring(pwidechar(Pointer(DWORD(ppck)+[байт с которого идёт строка]))));
string(PWideToString(pwidechar(Pointer(DWORD(ppck) +[байт с которого идёт строка]))));
где ppck это адрес пакета

Цитата:
function PWideToString(pw: PWideChar): string;
var
p: PChar;
iLen: integer;
begin
iLen := lstrlenw(pw) + 1;
GetMem(p, iLen);
WideCharToMultiByte(CP_ACP, 0, pw, iLen, p, iLen * 2, nil, nil);
Result := p;
FreeMem(p, iLen);
end;
__________________
каждый раз, когда ты пишешь int i вместо short i, сотни пользователей вынуждены докупать планку памяти

служба поддержки 4gay - ICQ 642274822

Последний раз редактировалось Morfik, 11.01.2012 в 04:44.
Morfik вне форума   Ответить с цитированием