[Webinar] Streamline your web hosting managementRegister Today

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 540
  • Last Modified:

BCB5 Where is WIN32 defined ?

I have the following line of code in one of my Borland C++ Builder 5 projects CPP modules

#define WIN32

This produces an error "Redefinition if WIN32 is not Identical"

I am not able to find any other re-definition by searching All Files in the project.

Can anyone advise me as to where WIN32 is originally defined ?
0
alcindor
Asked:
alcindor
  • 5
  • 4
  • 2
  • +1
2 Solutions
 
jkrCommented:
Taks a look at your project settings, it is likely that this is passed to the compiler as a command line option.
0
 
alcindorAuthor Commented:
I am running the compiler from the IDE, not the command line.
 
0
 
jkrCommented:
Yes, I presumed that. That's why I suggested the settings.
0
The new generation of project management tools

With monday.com’s project management tool, you can see what everyone on your team is working in a single glance. Its intuitive dashboards are customizable, so you can create systems that work for you.

 
alcindorAuthor Commented:
There are no references to WIN32 under any of the tabs in Project|Options ??
0
 
jkrCommented:
Is there anything like "preprocessor definitions"?
0
 
alcindorAuthor Commented:
No, there is no mention of preprocessors.

I have devised a workaround however, I preceed the #define WIN32 with  the line #undef WIN32

Possibly not the best solution but I have spent too much time on this issue already.

0
 
jkrCommented:
Well, instead uf an #undef, you could change that to
#ifndef WIN32
#define WIN32
#endif

Open in new window

0
 
tampnicCommented:
WIN32 is defined in windef.h as "#define WIN32 1"
You could just change your existing line of code to match or follow jkr's advice to use the #ifndef directive - both will work

The windef.h file will reside wherever BCB5 installed the Windows header files, or where you have installed the Windows SDK you are compiling with.

Cheers,
  Chris
0
 
sarabandeCommented:
you better remove the #define WIN32 statement in your code. such a basic macro never is defined in individual code but either in the compiler or project settings or in very basic header files of the libraries used. in the latter case it is done like jkr has shown cause a redefinition of that fundamental macro won't make a sense for any normal environment.

Sara
0
 
alcindorAuthor Commented:

The reason that I included #define WIN32 in my code was due to the fact that a third party API  (supplied with PicoScope, the USB oscilloscope) would not work with my compiler without it.

By the way, changing #define WIN32 to  #define WIN32 1  does not fix the problem either.
0
 
sarabandeCommented:
the third party API probably is not well prepared for Borland environment.

you could add the #include <windef.h> above the first header of the API - see comment of tampnic - what would solve the issue.

Sara
0
 
tampnicCommented:
The compiler isn't clever enough to realise you haven't actually redefined WIN32  with "#define WIN32 1" then. As sara says - #include <windef.h> should sort this out for you.

Cheers,
  Chris
0
 
alcindorAuthor Commented:
Thanks for your help, I adopted Sara'smost recent comment and it fixed the problem.
0

Featured Post

Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

  • 5
  • 4
  • 2
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now