Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.07.10;
Скачать: [xml.tar.bz2];

Вниз

Как преобразовать строку в 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.009 c
7-31538
_ALEXey_
2003-04-22 08:11
2003.07.10
Установка системного времени


6-31390
ДмитрийК
2003-04-21 08:12
2003.07.10
Проблема с RasHangUp


1-31203
Dream
2003-06-28 12:43
2003.07.10
проблемы с memo ( смешно конечно но я по моему уже гоню )


1-31334
Dopklip
2003-06-24 20:28
2003.07.10
Поиск и удаление файла


14-31479
mAnt
2003-06-24 14:27
2003.07.10
BDE





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский