Главная страница
    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.007 c
3-31145
Rel_
2003-06-18 16:39
2003.07.10
считывание данных из таблицы (.dbf)


1-31303
GrEG
2003-06-26 11:27
2003.07.10
CreateProcess


1-31194
Mishenka
2003-06-28 04:04
2003.07.10
Как в TreeView определить количество узлов верхнего уровня?


1-31210
Ilg
2003-06-28 18:09
2003.07.10
Перерисовка родительского компонента


14-31491
BALU1111
2003-06-24 14:27
2003.07.10
WWW приложения





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский