Если я смогу сделать это в Delphi,
{$IFDEF VER350}
/* Declare, define, do stuff ... */
{$ENDIF}
почему я не могу сделать это в C++Buider,
#ifdef VER350
// Declare, define, do stuff ...
#endif
Как получить версию компилятора в C++Builder?
Потому что компилятор не определяет тот же макрос или не делает такого рода вещи так же, как Delphi.
Согласно эта веб-страница, макрос, который вы ищете, называется __BCPLUSPLUS__
, и вы должны проверить, соответствует ли он коду версии, который вы ищете. См. эта страница для эквивалентов Delphi — C++ Builder.
Однако управление версиями не так прямолинейно, как в случае с Delphi, и таблица в нижней части страницы, по-видимому, не была обновлена для включения версии C++ Builder, соответствующей Delphi VER350. Тем не менее, само собой разумеется, что, поскольку эквивалент VER340 указан как 0x0750
, а предыдущий был 0x0740
, то, скорее всего, последним будет 0x0760
. В любом случае это простая проверка с вашей стороны.
Это будет выглядеть примерно так
#if __BCPLUSPLUS__ == 0x0760
...
#endif
«макрос, который вы ищете, называется
__BCPLUSPLUS__
» — есть также__TURBOC__
,__TCPLUSPLUS__
,__BORLANDC__
,__CODEGEARC__
и__CODEGEARC_VERSION__
, все из которых содержат номер версии компилятора. Исторически сложилось так, что чаще всего используется__BORLANDC__
, хотя в связи с необходимостью перенести все в Clang вместо этого рассмотрите__CODEGEARC(_VERSION)__
.