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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.09.2012, 20:47   #1
HellMercenariess
Форумчанин
 
Аватар для HellMercenariess
 
Регистрация: 27.07.2009
Сообщений: 547
По умолчанию Перевод старого кода на D2009

При попытке компиляции в Delphi 2009 возникают такие ошибки
"несовместимые типы Array and PAnsiChar."

Код:
  
var
  FileDestPath:array[0..MAX_PATH] of Char;
  FileNameW: array[0..MAX_PATH] of WideChar;

---------------------------
   OleCheck(SHGetSpecialFolderLocation(0, Folder, ItemIDList));
        SHGetPathFromIDList(ItemIDList, FileDestPath);
        StrCat(FileDestPath, PChar('\' + DisplayName + LinkExt));
        ShellLink.SetPath(PChar(FileName));
        ShellLink.SetIconLocation(PChar(FileName), 0);
        MultiByteToWideChar(CP_ACP, 0, FileDestPath, -1, FileNameW, MAX_PATH);
        OleCheck(PersistFile.Save(FileNameW, True));
не подскажете что на что заменить?
"Виновник этого парада,он не дурак, ушел как надо!" Похороны панка.
HellMercenariess вне форума Ответить с цитированием
Старый 02.09.2012, 20:52   #2
Delphi_ProGer
Форумчанин
 
Регистрация: 30.10.2010
Сообщений: 524
По умолчанию

Попробуйте так:

Код:
SHGetPathFromIDList(ItemIDList, PAnsiChar(FileDestPath));
MultiByteToWideChar(CP_ACP, 0, FileDestPath, -1, PAnsiChar(FileNameW), MAX_PATH);
Delphi_ProGer вне форума Ответить с цитированием
Старый 02.09.2012, 21:11   #3
HellMercenariess
Форумчанин
 
Аватар для HellMercenariess
 
Регистрация: 27.07.2009
Сообщений: 547
По умолчанию

Цитата:
Сообщение от Delphi_ProGer Посмотреть сообщение
Попробуйте так:

Код:
SHGetPathFromIDList(ItemIDList, PAnsiChar(FileDestPath));
MultiByteToWideChar(CP_ACP, 0, FileDestPath, -1, PAnsiChar(FileNameW), MAX_PATH);
при попытке Invalid Typecast
"Виновник этого парада,он не дурак, ушел как надо!" Похороны панка.
HellMercenariess вне форума Ответить с цитированием
Старый 02.09.2012, 21:13   #4
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Могу ошибаться, делфи не пользуюсь, но вроде бы в новых версиях Char == WideChar, потому первый массив нужно явно объявить как AnsiChar.

...

ADD: или даже просто убрать вызов MultiByteToWideChar...
netrino вне форума Ответить с цитированием
Старый 02.09.2012, 21:49   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
SHGetPathFromIDListW(ItemIDList, PWideChar(FileDestPath));
Где FileDestPath:String
Должно быть достаточно
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод кода с C++ BioHEX Общие вопросы Delphi 1 16.05.2012 19:03
перевод кода на С PhysX Помощь студентам 0 02.12.2011 17:46
перевод кода из С++ в С# PROkaZZZniK C# (си шарп) 3 14.11.2011 18:12
Перевод кода zmey31313 Фриланс 1 01.01.2010 21:49
Перевод кода на С++ Golovastik Помощь студентам 0 04.06.2009 14:27