How to compile COM components written in VC6.0 in Visual Studio 2010

  • Follow


Hello,
I have to compile COM components written in VC 6.0 or edited and
modified in Visual Studio 2003 in Visual Studio 2010. It is giving
error messages like

' error C1189: #error :  This file requires _WIN32_WINNT to be
#defined at least to 0x0403. Value 0x0501 or higher is recommended'

IntelliSense: #error directive: This file requires _WIN32_WINNT to be
#defined at least to 0x0403. Value 0x0501 or higher is recommended'

It given the error in the conversion report that atl support is
eliminated.Can any body tell a way around to compile and build COM
components that were originally written in VC 6.0 or Visual Studio
2003.NET



Regards
Muhammad Usman Khalil
0
Reply glitteringsounds 2/16/2010 12:19:47 PM

* glitteringsounds:
> Hello,
> I have to compile COM components written in VC 6.0 or edited and
> modified in Visual Studio 2003 in Visual Studio 2010. It is giving
> error messages like
> 
> ' error C1189: #error :  This file requires _WIN32_WINNT to be
> #defined at least to 0x0403. Value 0x0501 or higher is recommended'
> 
> IntelliSense: #error directive: This file requires _WIN32_WINNT to be
> #defined at least to 0x0403. Value 0x0501 or higher is recommended'
> 
> It given the error in the conversion report that atl support is
> eliminated.Can any body tell a way around to compile and build COM
> components that were originally written in VC 6.0 or Visual Studio
> 2003.NET

For the immediate problem, just define _WIN32_WINNT. It's used by <windows.h> to 
include only declarations that are meaningful for the specified Windows version 
and lower. 0x0500 is Windows 2000, 0x0501 Windows XP, and I think but not sure 
that 0x0502 would be Windows Server (?). Based on this progression, 
hypothetically Vista would be 0x0600 and Windows 7 perhaps 0x0700?

Someone more knowledgable than me (or willing to invest perhaps half a minute 
googling) will perhaps chime in with more complete details.

I'd go for 0x0500, using Windows 2000 features but not later.

If you have a stdafx.h file you can probably define it there, or just define it 
in the project settings.

You'll probably discover other problems when this one's fixed.


Cheers & hth.,

- Alf
0
Reply Alf 2/16/2010 12:34:01 PM


On 2/16/2010 7:34 AM, Alf P. Steinbach wrote:
>> IntelliSense: #error directive: This file requires _WIN32_WINNT to be
>> #defined at least to 0x0403. Value 0x0501 or higher is recommended'
[...]
> For the immediate problem, just define _WIN32_WINNT. It's used by <windows.h> to 
> include only declarations that are meaningful for the specified Windows version 
> and lower. 0x0500 is Windows 2000, 0x0501 Windows XP, and I think but not sure 
> that 0x0502 would be Windows Server (?). Based on this progression, 
> hypothetically Vista would be 0x0600 and Windows 7 perhaps 0x0700?
> 
> Someone more knowledgable than me (or willing to invest perhaps half a minute 
> googling) will perhaps chime in with more complete details.
> 
> I'd go for 0x0500, using Windows 2000 features but not later.

FWIW:  Look in the file sdkddkver.h for the meanings of _WIN32_WINNT 
constants and other related #defines.

-- 
_________________________________________
Bob Smith -- bsmith@sudleydeplacespam.com

To reply to me directly, delete "despam".
0
Reply Bob 2/16/2010 6:36:20 PM

2 Replies
734 Views

(page loaded in 0.051 seconds)

Similiar Articles:













7/22/2012 10:27:53 PM


Reply: