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: 4518
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: 4518
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
User avatar
Kees Bouw
Posts: 119
Joined: Wed Nov 06, 2019 11:35 am
Location: Netherlands

Re: DEFINE/#ifdef seems to be ignored in X#

Post by Kees Bouw »

robert wrote: Wed Feb 22, 2023 2:05 pm 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
Sorry for my ignorance but where exactly on the Build page can you define a global define and what is the syntax? I searched the documentation but could not find it.

Thank you,

Kees.
User avatar
robert
Posts: 4518
Joined: Fri Aug 21, 2015 10:57 am
Location: Netherlands

Re: DEFINE/#ifdef seems to be ignored in X#

Post by robert »

Kees,
https://www.xsharp.eu/help/proppage-build.html
Defines for the preprocessor

Robert
XSharp Development Team
The Netherlands
robert@xsharp.eu
User avatar
Kees Bouw
Posts: 119
Joined: Wed Nov 06, 2019 11:35 am
Location: Netherlands

Re: DEFINE/#ifdef seems to be ignored in X#

Post by Kees Bouw »

robert wrote: Mon Jul 08, 2024 4:05 pm Kees,
https://www.xsharp.eu/help/proppage-build.html
Defines for the preprocessor

Robert
Robert,

As I said... sorry for my ignorance. I did not even know about https://www.xsharp.eu/help, I thought the online help was at https://docs.xsharp.it.

I am very happy with this link, it answers a lot of questions!

Kees.
User avatar
robert
Posts: 4518
Joined: Fri Aug 21, 2015 10:57 am
Location: Netherlands

Re: DEFINE/#ifdef seems to be ignored in X#

Post by robert »

Kees,

This online help is the same (based on the same help source) as the help that is included in the installer,which for example is also available from the VS Help menu.

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