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

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

Преобразование [D7, Win95/98]


Veace$lav ©   (2004-01-10 16:48:00) 

Как преобразовать 'String' and 'PAnsiChar'
Дельфя выдаёт -[Error] Unit1.pas(71): Incompatible types: 'String' and 'PAnsiChar'


Veace$lav   (2004-01-11 13:06:00) [1]

Всем Спасибо!!!


VMcL   (2004-01-11 04:13:00) [2]

Ой, sorry, глюканул.

var
S: String;
// ...
SetLength(S, MaxLengthThatCanBeUsedInFunction);
Func(..., PChar(S), ...);
SetLength(S, StrLen(PChar(S)));


VMcL   (2004-01-11 04:11:00) [3]

>>Veace$lav ©  (10.01.04 16:48)

Итоги подведем:

Если требуемый PChar - только для чтения, тогда Burmistroff  (10.01.04 16:53) [1].
Если же в него может понадобиться что-нибудь записать, то или YuRock ©  (10.01.04 19:14) [2]или вот так:

var
 S: String;
// ...
SetLength(S, MaxLengthThatCanBeUsedInFunction);
Func(..., PChar(S), ...);
SetLength(S, StrLen(S));


YuRock   (2004-01-10 19:14:00) [4]

Надо делать так (если хотите, чтоб работало):


...
begin
 p := StrAlloc(Length(s) + 1);
 StrPCopy(p, s);
 
 // Потом нужно обязательно:
 StrDispose(p);
end;
...


Burmistroff   (2004-01-10 16:53:00) [5]

s: string
p: pchar;

p:=pchar(s);
можно и экзотически: p:=@s[1];


Наверх

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