AVC |
Отправлено: 30.03.2005, 08:59 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
Виже в Delphi такие строки
CODE |
{$IFDEF VER100} { Borland Delphi 3.0 }
{$IFDEF VER110} { C++Builder 3.0 }
{$IFDEF VER120} { Borland Delphi 4.0 }
{$IFDEF VER125} { CPP Builder 4.0 }
{$IFDEF VER130} { Borland Delphi 5.0 or CPP Builder 5.0 }
{$IFDEF VER140} { Borland Delphi 6.0 or CPP Builder 6.0}
{$IFDEF VER150} { Borland Delphi 7.0 }
|
Хочу повтрить в Builder и ни чего подобного не могу найти. Может не там ищу?
Строки VER130 и VER110 вижу в файлах из каталога BIN Builder5 и 3 соответственно.
Может кто сталкивался?
|
|
Gedeon |
Отправлено: 30.03.2005, 12:39 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
Я так подозреваю, что аналог этого сишный
CODE |
#ifdef VER140
ShowMessage("D6 || BCB6");
#endif |
Однако на 6 не работает, еще я отрыл эту проверку в дэльфийском коде кучи компанентов такие, как инди, адвстргрид, зиптв и т.д. и судя по коду, там проверяется именно версия среды, может это работает при компиляции именно компонентов? Щас поищу.
|
|
avc* |
Отправлено: 30.03.2005, 12:59 |
|
Не зарегистрирован
|
QUOTE |
#ifdef VER140
ShowMessage("D6 || BCB6");
#endif
|
Естественно это было проверено в первую очередь . Не работает.
Актуально встала проблема написания кода для разных версий Builder'а.
|
|
Gedeon |
Отправлено: 30.03.2005, 13:01 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
Вот что нашел в фастрепорте, тут вроде более подробно расписано
CODE |
{$IFDEF VER90} // Delphi 2.0
{$DEFINE Delphi2}
{$ENDIF}
{$IFDEF VER100} // Delphi 3.0
{$DEFINE Delphi3}
{$ENDIF}
{$IFDEF VER120} // Delphi 4.0
{$DEFINE Delphi4}
{$ENDIF}
{$IFDEF VER130} // Delphi 5.0
{$DEFINE Delphi4}
{$DEFINE Delphi5}
{$ENDIF}
{$IFDEF VER140} // Delphi 6.0
{$DEFINE Delphi4}
{$DEFINE Delphi5}
{$DEFINE Delphi6}
{$ENDIF}
{$IFDEF VER150} // Delphi 7.0
{$DEFINE Delphi4}
{$DEFINE Delphi5}
{$DEFINE Delphi6}
{$WARN UNSAFE_CODE OFF}
{$ENDIF}
{$IFDEF VER93} // Borland C++ Builder 1.0
{$DEFINE Delphi2}
{$ENDIF}
{$IFDEF VER110} // Borland C++ Builder 3.0
{$DEFINE Delphi3}
{$ObjExportAll on}
{$ENDIF}
{$IFDEF VER125} // Borland C++ Builder 4.0
{$DEFINE Delphi4}
{$ObjExportAll on}
{$ENDIF}
{$IFDEF VER130} // Borland C++ Builder 5.0
{$IFDEF BCB}
{$ObjExportAll on}
{$ENDIF}
{$ENDIF}
{$IFDEF VER140} // Borland C++ Builder 6.0
{$IFDEF BCB}
{$ObjExportAll on}
{$ENDIF}
{$ENDIF}
{$IFDEF VER150} // Borland C++ Builder 7.0
{$IFDEF BCB}
{$ObjExportAll on}
{$WARN UNSAFE_CODE OFF}
{$ENDIF}
{$ENDIF}
|
Проверка на 7 дэлфи кстати проходит, а вот такую строку я нашел в бинарниках только dcc32.exe && dcc60.dll
Вот, что написано в хэлпе 7 про ето
QUOTE |
VER150 Always defined, indicating that this is version 15.0 of the Delphi compiler. (Each compiler version has a corresponding predefined symbol. For example, version 10.0 has VER100 defined.)
|
Вот для билдера похоже эти вещи не определены, вот что я нашел для него в справке, см. раздел
Pre-existing conditional defines
|
|
avc* |
Отправлено: 30.03.2005, 13:08 |
|
Не зарегистрирован
|
Куски текста в первом моем посте и были из FastReport'а
Я пока тоже ни чего для решения этой проблемы не придумал. |
|
Asher |
Отправлено: 30.03.2005, 14:49 |
|
Мастер участка
Группа: Модератор
Сообщений: 550
|
Привет
Может макрос _ _BORLANDC_ _ может помочь?
0x0530 в BCppB5
0x0560 в BCppB6
0x0564 в BCppB6 Service Pack 4
|
|
Gedeon |
Отправлено: 30.03.2005, 15:42 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
Да, это кстати то, что нужно, вот исчо про 1 и 3
http://www.bcbdev.ru/cbuilder/articles/det...ler_version.htm
|
|
AVC |
Отправлено: 30.03.2005, 15:46 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
QUOTE |
Привет
Может макрос _ _BORLANDC_ _ может помочь?
|
Да. Спасибо. Я его уже крутил, не не привык, что кроме проверки на define можно проверять условие.
Первые шаги такие
CODE |
#if (__BORLANDC__ — 0x0530)
ShowMessage(530);
#else
ShowMessage("Other");
#endif
|
И это работает так как надо. |
|
AVC |
Отправлено: 30.03.2005, 15:52 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
2Gedeon
Стыд мне и позор . А поиском я ни чего не нашел. |
|