DEFINE/#ifdef seems to be ignored in X#

This forum is meant for questions and discussions about the X# language and tools
Post Reply
stefan.ungemach
Posts: 71
Joined: Thu Jul 15, 2021 10:46 am
Location: Germany

DEFINE/#ifdef seems to be ignored in X#

Post by stefan.ungemach »

Can anyone please explain to me why the folliwing code considers DUMMY_DEFINE to be not set (thus greying out anything except the red line which becomes compiled)? Playing around with the -/vo8 switch didn't change the behaviour.

define DUMMY_DEFINE := true
FUNCTION Start() AS VOID STRICT

#ifdef DUMMY_DEFINE
SafeDebOut32( "DUMMY_DEFINE true")
#else
SafeDebOut32( "DUMMY_DEFINE false")
#endif
User avatar
robert
Posts: 4225
Joined: Fri Aug 21, 2015 10:57 am
Location: Netherlands

DEFINE/#ifdef seems to be ignored in X#

Post by robert »

Stefan,
If you want to use the #ifdef functionality in X# you will need to use #define to declare the values and not define.
And /vo8 controls the case sensitivity of the preprocessor w.r.t. symbols declared with #define and not those declared with define.


Robert
XSharp Development Team
The Netherlands
robert@xsharp.eu
stefan.ungemach
Posts: 71
Joined: Thu Jul 15, 2021 10:46 am
Location: Germany

DEFINE/#ifdef seems to be ignored in X#

Post by stefan.ungemach »

Robert,

dank je wel!
stefan.ungemach
Posts: 71
Joined: Thu Jul 15, 2021 10:46 am
Location: Germany

DEFINE/#ifdef seems to be ignored in X#

Post by stefan.ungemach »

There seems to be another issue. The scope of #DEFINE is limited to its prg. In VO it's not, so you cal set a switch for a whole app at one single point. Thus, a global compiler switch in former VO code works no more and requires deep analysis of all the transported code in all PRGs which is a dangeroius error source.
User avatar
robert
Posts: 4225
Joined: Fri Aug 21, 2015 10:57 am
Location: Netherlands

DEFINE/#ifdef seems to be ignored in X#

Post by robert »

Stefan,

You can define global defines on the Build page of the project properties.
We are following the model here from all other languages. VO was really the exception.

Robert
XSharp Development Team
The Netherlands
robert@xsharp.eu
Post Reply