Текущий архив: 2003.02.17;
Скачать: CL | DM;
ВнизВ чем фишка? Найти похожие ветки
← →
Александра (2003-02-07 18:49) [0]В DLL функция возвращает результат в формате PChar. Предварительно результат формируется во внутренней переменной res типа string. Пишу result := @res - не работает... результирующая строка отображалась заполненной пробелами (или во всяком случае нужной длины, но с не ASCII символами). Пишу result := PChar(res) все работает правильно.
Насколько я понимаю, PChar по сути указатель на строку, так в чем разница между этими вариантами? И почему в первом случае я получала такой странный результат?
← →
Романов Р.В. (2003-02-07 19:04) [1]@res - Адресс указателя на строку а не самой строки
← →
anbezr (2003-02-07 19:17) [2]Во первых: дело в размере элемента
Во вторых: PChar всегда кончается нулём.
← →
Романов Р.В. (2003-02-07 19:28) [3]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;
← →
Александра (2003-02-08 11:32) [4]Спасибо за ликбез, очень помогло.
Страницы: 1 вся ветка
Текущий архив: 2003.02.17;
Скачать: CL | DM;
Память: 0.44 MB
Время: 0.011 c