Форум: "Система";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.25;
Скачать: [xml.tar.bz2];




Вниз

помогите разобраться с поинтерами 


Philip   (2002-01-27 00:35) [0]

Мастера, подскажите пожалуйста, как правильно пользоваться функцией GetSystemDirectory, а то я совсем запутался с поинтерами и PChar"ами: как правильно
GetSystemDirectory(@Buf, MAX_PATH);
или
GetSystemDirectory(Buf, MAX_PATH);
если Buf : PChar;

и как потом значение в Buf корректно изменить на Buf + S, если S : string.

заранее благодарю и извините за ламерский вопрос.
p.s. все мои попытки приводили к ошибке EAccessViolation.



Tosov   (2002-01-27 00:55) [1]

Скорее всего Buf, но надо выделить операвивку для этого Buf
GetMem(buf,MAX_PATH);
..
потом FreeMem(Buf);



Philip   (2002-01-27 00:58) [2]

Спасибо.



Romkin   (2002-01-28 16:04) [3]

По причине того, что функция возвращает длину пути в символах, рекомендую пользоваться string, без заморочек с памятью
var
SystemDir: string;
nSize: integer;

nSize := GetSystemDirectory(nil,0);
//nSize = 0 - Error
SetLength(SystemDir,nSize);
GetSystemDirectory(PChar(SystemDir),nSize);
//SystemDir = путь

При этом отпадает необходимость контроля за памятью



amamed_3071   (2002-01-29 10:28) [4]

S:String;
//Set S max value
s:="";
//For i:=1 to 255 do
s:=s+" ";
S:=" "

GetSystemDirectory(@S[1],255);
s:=trim(s)



Petrovich   (2002-01-29 13:21) [5]

> amamed_3071

Вместо страшного цикла с заполнением строки пробелами лучше использовать SetLength(S, MAX_PATH)




Форум: "Система";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.25;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.031 c
14-81038          lipskiy               2002-03-16 13:26  2002.04.25  
Люди!!! Помогите! Комп одурел совсем - сам RESET нажимает! Что делать?!


1-80931           Ser_Kham1             2002-04-11 16:02  2002.04.25  
создание help файла


1-80939           P.                    2002-04-11 12:20  2002.04.25  
ComboBox


1-80868           kopachev              2002-04-12 10:28  2002.04.25  
Как программно менять значение Options в StringGride


3-80837           Андрей Брусов         2002-04-04 09:13  2002.04.25  
Языковые драйверы в BDE