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

M

Mohammad Omer

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\platformsdk\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
 
B

Bruno van Dooren [MVP VC++]

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
(e-mail address removed)
Remove only "_nos_pam"
 
M

Mohammad Omer

Thanks Bruno!

regards,

-aims

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.





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
(e-mail address removed)
Remove only "_nos_pam"
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top