Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.013 c
3-31119
_Narayan_
2003-06-17 14:50
2003.07.10
...одинаковых записей..


3-31147
Shaman
2003-06-18 17:31
2003.07.10
Описания к кодам ошибок MSSQL


1-31229
Ahmad K
2003-06-29 11:49
2003.07.10
Как отчистить текст от неруских букв?


14-31504
Silentium!
2003-06-19 17:29
2003.07.10
процессы


14-31399
II
2003-06-24 13:03
2003.07.10
Кто нибуть знаком с математикой оптимизации рецептов комбикормов?




   Наверх