Suggestion about Bug Fixing of "error C2371: 'WCHAR' : redefinition; different basic types"

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Mohammad Omer

    #1

    Suggestion about Bug Fixing of "error C2371: 'WCHAR' : redefinition; different basic types"

    Hi,

    i am developing an application which uses WAB API's, for doing all
    this i am using vs2k5. I have wab.h header file included in my project
    to use WAB api's but after compilation one error comes like

    Error 1 error C2371: 'WCHAR' : redefinition; different basic types c:
    \program files\microsoft visual studio 8\vc\platformsd k\include
    \wabdefs.h 78

    The error occurs on the following statement, because of redefinition
    of 'WCHAR'

    #if !defined(UNIX) && !defined(WIN16)
    typedef WORD WCHAR;
    #endif

    but i know the solution of this problem. it solves by changing project
    setting of "Treat wchar_t as Built-in Type" value "No (/Zc:wchar_t-)".
    But I am using "Xtreme Toolkit Professional Edition" for making good
    look & Feel of an application, when i fix the above problem by
    changing project settings a new linking errors come from Xtreme
    Toolkit Library. So what i do to fix this problem, in project setting
    "Treat wchar_t as Built-in Type" value "yes" and i wrote following
    statements where i included wab.h header file.

    #define WIN16
    #include "wab.h"
    #undef WIN16

    and after that my project is working fine and all the things related
    to WAB is also working fine. any one guide me, is that the right way
    to solve this problem??? and, will this have any effect on the rest of
    project??

    Regards,

    -aims

  • Bruno van Dooren [MVP VC++]

    #2
    Re: Suggestion about Bug Fixing of "error C2371: 'WCHAR' : redefinition; different basic types"

    but i know the solution of this problem. it solves by changing project
    setting of "Treat wchar_t as Built-in Type" value "No (/Zc:wchar_t-)".
    But I am using "Xtreme Toolkit Professional Edition" for making good
    look & Feel of an application, when i fix the above problem by
    changing project settings a new linking errors come from Xtreme
    Toolkit Library. So what i do to fix this problem, in project setting
    "Treat wchar_t as Built-in Type" value "yes" and i wrote following
    statements where i included wab.h header file.
    You can change that setting on a per-codefile basis so that only specific
    files are compiled with that particular setting.
    If you can solve your problems that way it would be the cleanest solution.
    >
    #define WIN16
    #include "wab.h"
    #undef WIN16
    >
    and after that my project is working fine and all the things related
    to WAB is also working fine. any one guide me, is that the right way
    to solve this problem??? and, will this have any effect on the rest of
    project??
    I wouldn't worry about it. whatever the definition, it is a 16 bit variable
    in both cases.
    I agree that it isn't the best looking solution, but it should work IF WIN16
    has no other impact inside the wab.h file.


    --

    Kind regards,
    Bruno van Dooren
    bruno_nos_pam_v an_dooren@hotma il.com
    Remove only "_nos_pam"


    Comment

    • Mohammad Omer

      #3
      Re: Suggestion about Bug Fixing of "error C2371: 'WCHAR' : redefinition; different basic types"

      Thanks Bruno!

      regards,

      -aims

      On Feb 14, 5:27 pm, "Bruno van Dooren [MVP VC++]"
      <bruno_nos_pam_ van_doo...@hotm ail.comwrote:
      but i know the solution of this problem. it solves by changing project
      setting of "Treat wchar_t as Built-in Type" value "No (/Zc:wchar_t-)".
      But I am using "Xtreme Toolkit Professional Edition" for making good
      look & Feel of an application, when i fix the above problem by
      changing project settings a new linking errors come from Xtreme
      Toolkit Library. So what i do to fix this problem, in project setting
      "Treat wchar_t as Built-in Type" value "yes" and i wrote following
      statements where i included wab.h header file.
      >
      You can change that setting on a per-codefile basis so that only specific
      files are compiled with that particular setting.
      If you can solve your problems that way it would be the cleanest solution.
      >
      >
      >
      #define WIN16
      #include "wab.h"
      #undef WIN16
      >
      and after that my project is working fine and all the things related
      to WAB is also working fine. any one guide me, is that the right way
      to solve this problem??? and, will this have any effect on the rest of
      project??
      >
      I wouldn't worry about it. whatever the definition, it is a 16 bit variable
      in both cases.
      I agree that it isn't the best looking solution, but it should work IF WIN16
      has no other impact inside the wab.h file.
      >
      --
      >
      Kind regards,
      Bruno van Dooren
      bruno_nos_pam_v an_doo...@hotma il.com
      Remove only "_nos_pam"

      Comment

      Working...