![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как тип String привести к PWideChar?
Yandexman © (2005-06-01 19:05:00)как String привести к PWideChar?
Ученик (2005-06-01 23:55:00) [21]>Alex Konshin © (01.06.05 23:12) [8]
Понятно :-)
Есть предположение, что Yandexman спрашивает для этого
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1117616006&n=5
Alex Konshin (2005-06-01 23:12:00) [22]Ученик (01.06.05 22:50) [5]
>Alex Konshin © (01.06.05 22:46) [3]
Вы это серьезно ?
Вполне серьезно.
Вот, например, такое безобидное применение (кстати, первое же, что напрашивается в голову начинающему) предложенного способа чревато любыми неприятностями.
function ToWideChar( const S: String ) : PWideChar;
begin
Result := PWideChar(WideString(S));
end;
Вы хоть предупреждайте новичков.
Для тех, кто не понял: актуальность указателя, получаемого по PWideChar(WideString(S)) практически только в пределах самого этого выражения. Передавать его куда-либо нельзя.
Reindeer Moss Eater (2005-06-01 22:58:00) [23]Даже если будет утечка памяти или обращение к мусору или даже если упадет кирпич, приведение string к PWideChar все равно состоится.
А о другом не спрашивалось.
:)
iskatel (2005-06-01 22:56:00) [24]2Alex Konshin
тебе надо на сях попрограммить или на асме, а то вообще всего боятся стал, что в хелпе как не "safe" прописано :-)
Ученик (2005-06-01 22:50:00) [25]>Alex Konshin © (01.06.05 22:46) [3]
Вы это серьезно ?
VMcL (2005-06-01 22:49:00) [26]>> Alex Konshin © (01.06.05 22:46) [3]
А ещё кирпич на голову может упасть.
WBW.
Alex Konshin (2005-06-01 22:46:00) [27]При таком явном приведении может быть memory leak или к обращению к мусору.
Так же как и при простом PChar(s).
Мастера, тщательнее надо быть, тщательнее. :)
VMcL (2005-06-01 19:09:00) [28]
PWideChar(WideString(S))
где S - AnsiString
Reindeer Moss Eater (2005-06-01 19:08:00) [29]Явно