Hi,
I'm running into a couple of problems with the MingW pack right now.
My main problem is that if you look at mingw\i686-pc-mingw32\include\windef.h you'll see on line 12 that WINVER is #defined as 0x0400 which indicates that the version of the Windows SDK is very old - that WINVER value corresponds to NT 4.0! This is a little troublesome for me because there are some newer APIs which I need to be able to use, and I'd like to use them without defining home-brew versions of those APIs. So is there any scope for upgrading to a more modern version of the SDK?
Thanks Joel
Joel Holdsworth wrote:
Hi,
I'm running into a couple of problems with the MingW pack right now.
My main problem is that if you look at mingw\i686-pc-mingw32\include\windef.h you'll see on line 12 that WINVER is #defined as 0x0400 which indicates that the version of the Windows SDK is very old - that WINVER value corresponds to NT 4.0! This is a little troublesome for me because there are some newer APIs which I need to be able to use, and I'd like to use them without defining home-brew versions of those APIs. So is there any scope for upgrading to a more modern version of the SDK?
Thanks Joel
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
Hi,
Mingw with a recent win32api (3.10?) is able to use Windows 2000 and Windows XP features like ipv6 and uxtheme. All you need to do is to pass -DWINVER=0x0501 to gcc to use those new features.
Defining winver to 0x0501 may cause the resulting executable to have problems running on older Win32 platforms like Win95 and Win98.
If you do not plan to maintain for the older Win32 platforms, you may want to edit windef.h to change winver to 0x0501.
Hope that helps.
On 9/17/07, JonY <10walls@...400...> wrote:
Defining winver to 0x0501 may cause the resulting executable to have problems running on older Win32 platforms like Win95 and Win98.
We don't support win98 anyway, because GTK and other libs do not support it any more.
This probably isn't going to happen. We only get what the MinGW guys provide in their win32api. We don't call the Win32 SDK directly at all. Messing about with their stuff is probably asking for trouble.
bob
bulia byak wrote:
On 9/17/07, JonY <10walls@...400...> wrote:
Defining winver to 0x0501 may cause the resulting executable to have problems running on older Win32 platforms like Win95 and Win98.
We don't support win98 anyway, because GTK and other libs do not support it any more.
All you need to do is to pass -DWINVER=0x0501 to gcc to use those new features.
Defining winver to 0x0501 may cause the resulting executable to have problems running on older Win32 platforms like Win95 and Win98.
If you do not plan to maintain for the older Win32 platforms, you may want to edit windef.h to change winver to 0x0501.
That's very helpful. As it happens, I have virtual machines ready to run all versions of Windows back to 95, so I was planning to make careful tests anyway!
Joel
----- Original Message ----- From: "JonY" <10walls@...400...> To: inkscape-devel@lists.sourceforge.net Sent: Tuesday, September 18, 2007 12:56 AM Subject: SPAM-LOW: Re: [Inkscape-devel] Upgrading the MingW pack
Joel Holdsworth wrote:
Hi,
I'm running into a couple of problems with the MingW pack right now.
My main problem is that if you look at mingw\i686-pc-mingw32\include\windef.h you'll see on line 12 that WINVER is #defined as 0x0400 which indicates that the version of the Windows SDK is very old - that WINVER value corresponds to NT 4.0! This is a little troublesome for me because there are some newer APIs which I need to be able to use, and I'd like to use them without defining home-brew versions of those APIs. So is there any scope for upgrading to a more modern version of the SDK?
Thanks Joel
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
Hi,
Mingw with a recent win32api (3.10?) is able to use Windows 2000 and Windows XP features like ipv6 and uxtheme. All you need to do is to pass -DWINVER=0x0501 to gcc to use those new features.
Defining winver to 0x0501 may cause the resulting executable to have problems running on older Win32 platforms like Win95 and Win98.
If you do not plan to maintain for the older Win32 platforms, you may want to edit windef.h to change winver to 0x0501.
Hope that helps.
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ _______________________________________________ Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
On Sep 17, 2007, at 3:42 PM, Joel Holdsworth wrote:
My main problem is that if you look at mingw\i686-pc-mingw32\include\windef.h you'll see on line 12 that WINVER is #defined as 0x0400 which indicates that the version of the Windows SDK is very old - that WINVER value corresponds to NT 4.0! This is a little troublesome for me because there are some newer APIs which I need to be able to use, and I'd like to use them without defining home-brew versions of those APIs. So is there any scope for upgrading to a more modern version of the SDK?
I know that one general goal is to keep Inkscape as backwards compatible as reasonable. Supporting more that just the greatest and latest helps us gain more use. It's also in line with the Open Source model as far as staying useful, as opposed to the commercial business model where it benefits the vendor to push end users to constantly buy newer stuff.
Probably before going with any new features/API's you should do a quick check to see what that would change the minimum runtime requirements to.
When I was fixing some stuff a while back, I was surprised to get actual end-user bug reports from people using NT 4.0. Keep in mind, of course, that usually people who hit problems just drop trying the software and go away without saying things.
I know that one general goal is to keep Inkscape as backwards compatible as reasonable. Supporting more that just the greatest and latest helps us gain more use.
Oh yes I completely agree; sorry I should have made that clear. I'm not planning to make inkscape incompatible with NT 4.0, ME, or whatever arcane OS you choose to use. I'm simply planning to allow inkscape to take advantage of specific features of the newer versions of windows where available.
For example, if I'm customising the Windows common file dialog to add a preview pane, the ideal is to try and make it look good for every platform by tailoring it for each version of the OS. This isn't as hard as it sounds though, because the file dialog has only really had two forms in the last decade: "explorer style" from the 95/98/ME/NT4.0 era, and "2000 style" which is nearly the same but with a places bar down the left. For Vista and newer MS have introduced a new more advanced file dialog API, which allow Windows to natively give us all the features we want without having to customize anything.
So hopefully when I get these three done we should have file dialogs that look seamless in every supported version of Windows, and which will continue to look good for every version of the OS into the future. But without the new versions of the SDK, I can't easily do anything other than a 95/98/ME/NT4.0 style dialog.
Do you see my problem?
Joel
----- Original Message ----- From: Jon A. Cruz To: Joel Holdsworth Cc: inkscape-devel@lists.sourceforge.net Sent: Tuesday, September 18, 2007 1:22 AM Subject: Re: [Inkscape-devel] Upgrading the MingW pack
On Sep 17, 2007, at 3:42 PM, Joel Holdsworth wrote:
My main problem is that if you look at
mingw\i686-pc-mingw32\include\windef.h you'll see on line 12 that WINVER is
#defined as 0x0400 which indicates that the version of the Windows SDK is
very old - that WINVER value corresponds to NT 4.0! This is a little
troublesome for me because there are some newer APIs which I need to be able
to use, and I'd like to use them without defining home-brew versions of
those APIs. So is there any scope for upgrading to a more modern version of
the SDK?
I know that one general goal is to keep Inkscape as backwards compatible as reasonable. Supporting more that just the greatest and latest helps us gain more use. It's also in line with the Open Source model as far as staying useful, as opposed to the commercial business model where it benefits the vendor to push end users to constantly buy newer stuff.
Probably before going with any new features/API's you should do a quick check to see what that would change the minimum runtime requirements to.
When I was fixing some stuff a while back, I was surprised to get actual end-user bug reports from people using NT 4.0. Keep in mind, of course, that usually people who hit problems just drop trying the software and go away without saying things.
On Sep 18, 2007, at 1:16 AM, Joel Holdsworth wrote:
For example, if I'm customising the Windows common file dialog to add a preview pane, the ideal is to try and make it look good for every platform by tailoring it for each version of the OS. This isn't as hard as it sounds though, because the file dialog has only really had two forms in the last decade: "explorer style" from the 95/98/ME/NT4.0 era, and "2000 style" which is nearly the same but with a places bar down the left. For Vista and newer MS have introduced a new more advanced file dialog API, which allow Windows to natively give us all the features we want without having to customize anything.
So hopefully when I get these three done we should have file dialogs that look seamless in every supported version of Windows, and which will continue to look good for every version of the OS into the future. But without the new versions of the SDK, I can't easily do anything other than a 95/98/ME/NT4.0 style dialog.
Do you see my problem?
Yes. I've dealt with that problem myself in the past.
The biggest problem with bumping versions on the SDK, is that it tends to hardcode in dependencies on newer items. One of them was that MSIE would add certain APIs, but if a user never installed it (more common on NT 4) then they would not have that API.
You might check in some of the existing code to see how that has been handled.
You guys realize that we're not using the SDK, right?
Jon A. Cruz wrote:
Yes. I've dealt with that problem myself in the past.
The biggest problem with bumping versions on the SDK, is that it tends to hardcode in dependencies on newer items. One of them was that MSIE would add certain APIs, but if a user never installed it (more common on NT 4) then they would not have that API.
You might check in some of the existing code to see how that has been handled.
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005. http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
Inkscape-devel mailing list Inkscape-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/inkscape-devel
On Sep 18, 2007, at 1:40 PM, Bob Jamison wrote:
You guys realize that we're not using the SDK, right?
yes...
But if we enable later versions numbers, newer functions get enabled which have extra binary dependencies over the base older OS.
Or something with that effect. I'm not as sure of my exact terminology.
participants (5)
-
Bob Jamison
-
bulia byak
-
Joel Holdsworth
-
Jon A. Cruz
-
JonY