Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

В чем фишка? [Win2k]


Александра ©   (2003-02-07 18:49:00) 

В DLL функция возвращает результат в формате PChar. Предварительно результат формируется во внутренней переменной res типа string. Пишу result := @res- не работает... результирующая строка отображалась заполненной пробелами (или во всяком случае нужной длины, но с не ASCII символами). Пишу result := PChar(res)все работает правильно.
Насколько я понимаю, PChar по сути указатель на строку, так в чем разница между этими вариантами? И почему в первом случае я получала такой странный результат?


Александра   (2003-02-08 11:32:00) [1]

Спасибо за ликбез, очень помогло.


Романов Р.В.   (2003-02-07 19:28:00) [2]

var
s: string;
begin
s := "Fssssss";
ShowMessage("Адресс указателя на строку "+IntToStr(Integer(@s))+#10#13+
"Адресс строки "+IntToStr(Integer(PChar(s)))+#10#13+
"Адресс строки "+IntToStr(Integer(PInteger(@s)^))+#10#13+
"Первый символ строки "+PChar(PInteger(@s)^)^);
end;


anbezr   (2003-02-07 19:17:00) [3]

Во первых: дело в размере элемента
Во вторых: PChar всегда кончается нулём.


Романов Р.В.   (2003-02-07 19:04:00) [4]

@res - Адресс указателя на строку а не самой строки


Наверх

Титульная страница Поиск, карта сайта Написать письмо