Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.10;
Скачать: CL | DM;

Вниз

Как преобразовать строку в PWideString ?   Найти похожие ветки 

 
MegaVolt ©   (2003-06-26 12:33) [0]

API-шная функция требует LPWSTR это я как понимаю PWideChar. Я пробую преобразовывать так

StringToWideShar(pwc,s,Length(s)*2+1);

Прога вылетает причём не на этой строке а гдето дальше причём переменная pwc может дальше ни где и не исспользоватся. Симптомы похожи на проблемы с памятью значит я не выдели память. пробую так:

SetLength(pwc,Length(s)*2+1);

ругается что не могу я передавать сонстанту :(
Как правильно работать с этим типом???


 
Skier ©   (2003-06-26 12:38) [1]

Хорошо бы под s память выделить...


 
MegaVolt ©   (2003-06-26 12:41) [2]

Так s это строка она уже есть например в Edit1.Text


 
Skier ©   (2003-06-26 12:42) [3]

Мда...
А вроде уже взрослый. :)


 
MegaVolt ©   (2003-06-26 12:44) [4]

Непонял :(


 
Skier ©   (2003-06-26 12:45) [5]

Удалено модератором
Примечание: OffTopic


 
icWasya ©   (2003-06-26 12:46) [6]

попробуй так
var ws:WideString;
pws:PWideChar;
ws:=s;
pws:=PWideChar(@ws[1]);

ApiFunction(pws,...);


 
MMF ©   (2003-06-26 12:47) [7]

function StringToPWideChar(S: string): PWideChar;
var
OldSize: Integer;
NewSize: Integer;
begin
OldSize := Length(S) + 1;
NewSize := OldSize * 2;
Result := AllocMem(NewSize);
MultiByteToWideChar(CP_ACP, 0, PChar(S), OldSize, Result, NewSize);
end;


 
MegaVolt ©   (2003-06-26 12:57) [8]

To icWasya:
а где само преобразование в UNICOD происходит? По идее должно получится по 2 символа на 1 символ строки плюс нуль на конце.

To MMF:
Заработало :) Только не понятно почему новый размер вычисляется как (x+1)*2 а не x*2+1.


 
icWasya ©   (2003-06-26 13:13) [9]

> а где само преобразование ...
посмотри дебагером, какой код стоит за
ws:=s

>почему новый размер вычисляется как (x+1)*2 а не x*2+1.
нулевой символ в конце строки тоже занимает два байта


 
MegaVolt ©   (2003-06-26 13:29) [10]

Спасибо :)



Страницы: 1 вся ветка

Текущий архив: 2003.07.10;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
14-31414
iNeLL
2003-06-25 19:19
2003.07.10
ActiveDesktop


14-31460
wizzo
2003-06-23 23:13
2003.07.10
ICQ: восстановить очищенный журнал?


6-31393
snoup
2003-05-02 11:07
2003.07.10
Как сохранить веб-страницу, когда она загружена в TWebBrowser?


14-31422
Кен
2003-06-25 04:33
2003.07.10
А можно ли перевести php или perl-скрипты в формат dll и вызывать


14-31494
Nox
2003-06-23 02:07
2003.07.10
День программиста