Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.02.2010, 11:39   #1
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,762
По умолчанию Функция SHGetSpecialFolderPath

Есть такой код:
Код:
procedure TMainForm.FormCreate(Sender: TObject);
var
  s : String;
  reg : TRegistry;
begin
  SetLength (s, Max_Path);
  SHGetSpecialFolderPath (0, PChar(s), CSIDL_COMMON_APPDATA, false);
  AppDataPath := s + '\Test\';
  ShowMessage (AppDATAPath);
end;
, где AppDataPath : string;
Только вот в AppDataPath находиться только S, а должно быть s + '\Test\'
Вопрос: Почему?
Заранее благодарен

Последний раз редактировалось FaTaL; 11.02.2010 в 11:41.
FaTaL вне форума Ответить с цитированием
Старый 11.02.2010, 11:45   #2
maxionans
Форумчанин
 
Аватар для maxionans
 
Регистрация: 02.01.2010
Сообщений: 254
По умолчанию

Потому что нельзя передавать паскалевскую строку в виде PChar в функцию, которая будет её там модифицировать. Нужно делать так:

Код:
var
  s : array[ 0..MAX_PATH ] of Char;
  reg : TRegistry;
begin
  s[ 0 ] := #0;
  SHGetSpecialFolderPath (0, s, CSIDL_COMMON_APPDATA, false);
  AppDataPath := s + '\Test\';
  ShowMessage (AppDATAPath);
end;
maxionans вне форума Ответить с цитированием
Старый 11.02.2010, 13:11   #3
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,762
По умолчанию

Спасибо, помогло.
Как тут кинуть плюсик в репу?
FaTaL вне форума Ответить с цитированием
Старый 11.02.2010, 13:13   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Как тут кинуть плюсик в репу?
На весы по аватаром нажимай. Рядом с красной-желтой карточками.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Функция NeosPasha Помощь студентам 0 25.01.2010 13:01
функция Cpluser Общие вопросы C/C++ 2 28.02.2009 23:08
Функция Lemo Помощь студентам 1 02.12.2008 00:24
Функция Sam04 Помощь студентам 1 11.09.2008 13:51
одна функция потока, а другая функция - член класса запускающего этот поток Дмитрий_Ч Общие вопросы C/C++ 2 27.09.2007 08:50