Главная страница
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.019 c
6-31379
dronas555
2003-05-05 12:40
2003.07.10
Отправка почты


14-31396
Dmitriy O.
2003-06-20 09:19
2003.07.10
Пиво мастера Delphi


3-31136
ZDN
2003-06-18 09:23
2003.07.10
MSSQL, Oracle & DB2


1-31195
zomba
2003-06-26 08:27
2003.07.10
ms word проблема с открытием документа


14-31490
HermitAlex
2003-06-24 17:33
2003.07.10
Динамическое наполнений DataSet в трехзвенном приложении