Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results

Home NTDEV

Before Posting...

Please check out the Community Guidelines in the Announcements and Administration Category.

More Info on Driver Writing and Debugging


The free OSR Learning Library has more than 50 articles on a wide variety of topics about writing and debugging device drivers and Minifilters. From introductory level to advanced. All the articles have been recently reviewed and updated, and are written using the clear and definitive style you've come to expect from OSR over the years.


Check out The OSR Learning Library at: https://www.osr.com/osr-learning-library/


Problem With Macros

OSR_Community_UserOSR_Community_User Member Posts: 110,217
> Hi All,
> I am having some problem with Macros. I will try to explain it with
> a example.
>
> There is a macro "errno" in stddef.h which is a standard include file
> provided with microsoft. The problem comes when I want to define my own
> version of "errno". For this I defined "#undef errno" but until this
> #undef gets executed, the old version of "errno" in stddef.h is compiled.
> Hence I have two version of "errno" in my project. What project setting I
> have to modify so that MY definition of "errno" is used for all files in
> the project ?
> Thanks in Advance
> KD
>

Comments

  • OSR_Community_UserOSR_Community_User Member Posts: 110,217
    First errno is not a macro, its a variable.
    The easiest way to solve this is to define your own macro say #define
    MY_errno, and change each occurrences of errno in your project files to
    MY_errno.
    By doing this it allows you to choose the default version or your version of
    the errno behavior...
    #ifdef USE_DEFAULT_ERRNO
    #define MY_errno errno
    #else
    #define MY_errno ..... //your version of errno
    #endif

    In general don't mess around with the variables defined in the default
    include files, you may end up in more problem at a later time.

    Regards,
    Manoj



    -----Original Message-----
    From: [email protected]
    [mailto:[email protected]]On Behalf Of Kd_Kaliannan
    Sent: Tuesday, March 14, 2000 3:06 PM
    To: NT Developers Interest List
    Subject: [ntdev] Problem With Macros
    Importance: High
    Sensitivity: Personal


    Hi All,
    I am having some problem with Macros. I will try to explain it with
    a example.
    There is a macro "errno" in stddef.h which is a standard include file
    provided with microsoft. The problem comes when I want to define my own
    version of "errno". For this I defined "#undef errno" but until this #undef
    gets executed, the old version of "errno" in stddef.h is compiled. Hence I
    have two version of "errno" in my project. What project setting I have to
    modify so that MY definition of "errno" is used for all files in the project
    ?
    Thanks in Advance
    KD
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. Sign in or register to get started.

Upcoming OSR Seminars
OSR has suspended in-person seminars due to the Covid-19 outbreak. But, don't miss your training! Attend via the internet instead!
Kernel Debugging 30 January 2023 Live, Online
Developing Minifilters 20 March 2023 Live, Online
Internals & Software Drivers 17 April 2023 Live, Online
Writing WDF Drivers 22 May 2023 Live, Online