Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Отичия компиляторов C++ Builder 6 и Borland Developer Studio 2006

37K
04 сентября 2008 года
PanCotzky
15 / / 28.08.2008
Если их можно таковыми назвать.

Поясняю проблему:
 
Код:
void __fastcall TForm1::SetInterWayClick(TObject *Sender)
{
        AnsiString directory;
        if(SelectDirectory(directory, sdPerformCreate, NULL))
        {
            InterContWay->Text=directory;
        }
}

Синтаксис SelectDirectory(AnsiString & Directory, TSelectDirOpts Options, int HelpCtx).
ПОЧЕМУ Could not find a match for SelectDirectory(AnsiString, TSelectDirOpts, int)??? Почему он воспринимает directory как переменную и не берёт на неё адрес?
В Обычном билдере 6 всё работает нормально. В связи с этим вопрос: это какой-то такой - не такой компилер в BDS или это у меня руки не от-туда растут?
Спасибо за внимание.
1
05 сентября 2008 года
kot_
7.3K / / 20.01.2000
Под рукой нет 2006 - но вероятно из него наконец то убрали устаревший диалог выбора директории, вызывавший ностальгию по временам вин3.11/95 :)
о чем собственно он и пытается сказать.
Это только предположение - но в принципе подобная ошибка может возникнуть только в таком случае.
37K
05 сентября 2008 года
PanCotzky
15 / / 28.08.2008
В том-то и дело, что функцию я нарыл в хелпах самого БДС. Там синтаксис указан именно такой. Меня вообще БДС напрягает. С одной стороны новая среда разработки, удобный интерфейс, куча фич - мечта, прямо таки, поэта. С другой стороны проблемы именно с взятием адреса и разыменованием возникали и в других случаях. Код, великолепно компилящийся в Билдере 6 вызывает в БДС ошибки компилятора, причём связанные не с калечными функциями или недостающими библиотеками, а именно с указателями, ссылками и прочими чисто синтаксическими моментами.
Может кто знает? Заплатки существуют к нему? Или может в версии 2007 это исправили?
1
05 сентября 2008 года
kot_
7.3K / / 20.01.2000
Цитата: PanCotzky

Может кто знает? Заплатки существуют к нему? Или может в версии 2007 это исправили?


Сервис-пак выходил. Даже на форуме была гдето ссылка вроде. Я его (2006 всмысле) поробовал, подивился мощи и бестолковости и до сих пор использую шестерку. Потому хз.
2007 закачал но все никак не соберусь поставить - потому тоже ничего сказать не могу. Попробуй передать в функцию именно ссылку - может помогет.

14
05 сентября 2008 года
Phodopus
3.3K / / 19.06.2008
К 2006й студии у меня 3 сервис пака где-то были..
Как сами исходники-то с этой функцией работают? Тут вон у народа тоже в BDS2006 с AnsiString проблемы..
37K
12 сентября 2008 года
PanCotzky
15 / / 28.08.2008
Тут, кажись, даже не с AnsiString проблема, а именно с указателями и ссылками. Впрочем, может это только с AnsiString такая проблема есть?
7.3K
16 сентября 2008 года
H010d Freeze
143 / / 08.08.2006
Проблема вовсе не с указателями и ссылками
Вызывать функцию нужно так:
 
Код:
SelectDirectory(directory,  TSelectDirOpts() << sdPerformCreate, NULL)
7.3K
16 сентября 2008 года
H010d Freeze
143 / / 08.08.2006
Кстати, в C++ Builder 6 проблемный код не собирается точно с такой же ошибкой =)
1
22 сентября 2008 года
kot_
7.3K / / 20.01.2000
Цитата: H010d Freeze
Кстати, в C++ Builder 6 проблемный код не собирается точно с такой же ошибкой =)


вероятнее всего автор забыл объявить и инициализировать массив опций - а пытался передать в функцию непосредственно опцию.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог