NO

Author Topic: polib: broken error message  (Read 23606 times)

czerny

  • Guest
Re: polib: broken error message
« Reply #15 on: May 08, 2012, 10:08:48 PM »
From the polib pe header:

linker version                10.00
required OS version           5.01
subsystem version             5.01


Offline Bitbeisser

  • Global Moderator
  • Member
  • *****
  • Posts: 772
Re: polib: broken error message
« Reply #16 on: May 08, 2012, 10:29:30 PM »
Well, it is quite possibly a bug in POlib, but nothing with "broken" error message or using a specific compiler. It seems to be a pathname problem.
Include the full path to shlwapi.lib into the Library Manager's command line and it will compile just fine....

Ralf

czerny

  • Guest
Re: polib: broken error message
« Reply #17 on: May 08, 2012, 10:39:45 PM »
Ralf

it is not a pathname problem. Have you seen the error message at the pictures I have posted?
Polib.exe didn't start at the command line at all.

czerny

Offline Bitbeisser

  • Global Moderator
  • Member
  • *****
  • Posts: 772
Re: polib: broken error message
« Reply #18 on: May 08, 2012, 11:43:30 PM »
Ralf

it is not a pathname problem. Have you seen the error message at the pictures I have posted?
Polib.exe didn't start at the command line at all.

czerny
That's not what your screenshots show and I could only reproduce (on XPSP3 32bit) the same error as CommonTater. I do not have a Windows 2000 machine around here right now, I will check with that later today, if time permits...

Ralf

CommonTater

  • Guest
Re: polib: broken error message
« Reply #19 on: May 09, 2012, 12:25:19 AM »
If there was a problem with 32bit POLIB I'm guessing the hue and cry would be up and going by now...
+1
And as I mentioned before, it is highly doubtful that Pelle uses anything bu this own compiler for this....
I would expect so as well... The best test of a compiler is for it to compile itself.  The second best test is for it to compile it's own libraries.


Quote
Quote
Maybe it's finally time for you to update that antique machine of yours... XP with sp3 will probably work with your current hardware and will most likely work with a LOT more software than Win2k...
Which legally isn't an option anymore...  ;)

Actually it is... czerny has said he has a copy of XP he purchased but never used. 
You can download SP3 for free from...  HERE
 
Quote
But I doubt that this is a problem with the OS he's running on, I suspect rather a subtle issue elsewhere that's just happen to rear it's ugly head after the latest update of Pelle's C....

Maybe so...
 
 

CommonTater

  • Guest
Re: polib: broken error message
« Reply #20 on: May 09, 2012, 12:33:48 AM »
From the polib pe header:

linker version                10.00
required OS version           5.01
subsystem version             5.01



OOPS... That's not going to work on Win 2000 which is version 5.00 ...

Windows version details ... HERE
 
To view the version of your OS... open a command shell and type winver and hit enter.
 


EDIT:  It would be nice if Pelle could clarify if this is a point of necessity for his code, or an error in setting version data.
 
 

 
« Last Edit: May 09, 2012, 12:42:30 AM by CommonTater »

Offline Bitbeisser

  • Global Moderator
  • Member
  • *****
  • Posts: 772
Re: polib: broken error message
« Reply #21 on: May 09, 2012, 03:19:06 AM »
Ok, I went ahead and installed Pelle's C 7.00.3 (RC2) 32bit on a Windows 2000 machine.

In fact, there are 3 files in the bin folder that won't run as provided on Windows 2000: poinst.exe, polib.exe and pomc.exe, all have a minimum OS version of 5.1 (Windows XP) in their PE header.

However, using PE_PATCH, I changed this in polib.exe to 4.0 as in all other executables, and it will run in Windows 2000 with the provided project file, given that the path is corrected as I stated before...

Ralf

CommonTater

  • Guest
Re: polib: broken error message
« Reply #22 on: May 09, 2012, 05:19:57 AM »
Ok, I went ahead and installed Pelle's C 7.00.3 (RC2) 32bit on a Windows 2000 machine.

In fact, there are 3 files in the bin folder that won't run as provided on Windows 2000: poinst.exe, polib.exe and pomc.exe, all have a minimum OS version of 5.1 (Windows XP) in their PE header.

However, using PE_PATCH, I changed this in polib.exe to 4.0 as in all other executables, and it will run in Windows 2000 with the provided project file, given that the path is corrected as I stated before...

Ralf

That's good news ... but it also raises a concern...

I can't speak for how Pelle does things, but when I program something I always set the version resources (etc) to the oldest OS that will work.  Quite often that ends up being XP-SP1 because I've had to use a system call that didn't exist before then... Now if Pelle uses a similar tactic, it may well be that it ran *this time* but may crash when it tries to call some Windows API function that doesn't exist in Windows 2000...

If it works, that's great... but I would caution czerny to test this VERY carefully before he trusts it...

Offline Bitbeisser

  • Global Moderator
  • Member
  • *****
  • Posts: 772
Re: polib: broken error message
« Reply #23 on: May 09, 2012, 05:55:32 AM »
Ok, I went ahead and installed Pelle's C 7.00.3 (RC2) 32bit on a Windows 2000 machine.

In fact, there are 3 files in the bin folder that won't run as provided on Windows 2000: poinst.exe, polib.exe and pomc.exe, all have a minimum OS version of 5.1 (Windows XP) in their PE header.

However, using PE_PATCH, I changed this in polib.exe to 4.0 as in all other executables, and it will run in Windows 2000 with the provided project file, given that the path is corrected as I stated before...

Ralf

That's good news ... but it also raises a concern...

I can't speak for how Pelle does things, but when I program something I always set the version resources (etc) to the oldest OS that will work.  Quite often that ends up being XP-SP1 because I've had to use a system call that didn't exist before then... Now if Pelle uses a similar tactic, it may well be that it ran *this time* but may crash when it tries to call some Windows API function that doesn't exist in Windows 2000...

If it works, that's great... but I would caution czerny to test this VERY carefully before he trusts it...
Nowhere is mentioned that Pelle's C 7.0 is officially supporting Windows 2000, it clearly states XP/Vista/7. Only for 6.x, it lists Windows 2000 (2k) explicitly, so czerny is pretty much on it's own from the get go...

I don't claim that patching the executable this way is a general solution, I just gave it a quick try and at least in this case, it seems to work.
And all other, more essential tools than polib.exe, are in fact working fine, having "4.0" as their minimal OS listed. No idea why just those 3 are different...

Ralf

czerny

  • Guest
Re: polib: broken error message
« Reply #24 on: May 09, 2012, 08:52:52 AM »
Ok, I went ahead and installed Pelle's C 7.00.3 (RC2) 32bit on a Windows 2000 machine.

In fact, there are 3 files in the bin folder that won't run as provided on Windows 2000: poinst.exe, polib.exe and pomc.exe, all have a minimum OS version of 5.1 (Windows XP) in their PE header.

However, using PE_PATCH, I changed this in polib.exe to 4.0 as in all other executables, and it will run in Windows 2000 with the provided project file, given that the path is corrected as I stated before...

Ralf

And all these exes arel linked by an other linker (10.0).

czerny

  • Guest
Re: polib: broken error message
« Reply #25 on: May 09, 2012, 09:40:46 AM »
What I like on the C language is, that it does not patronize me, that I have full control.
I wish, the same could be true for my compiling tools. Thats why I am using Pelles C. This toolset lets me compile even win95 programs (I sometimes need to support ME). Though it would be better it would me allow to create even 16-bit dos code (what I need more often).
M$'s strategie is to give there free tools to kick off unwanted oses. And this works and undermines the free software idea.

Look here

I see a lot of it professionals discussing for hours how to argue their toolset (VS2010) to support windows 2000. They need not any  XP functions.

I doubt that there is some functionality needed to compile Pelles C 7.0 which can only be found in XP and above. Now then why not include win2k?

But it is Pelles decision (or the decision of his toolset) if he want to include it or not.

If the later is the case, then it would be nice if we could get a final 6.5 version where the known bugs are fixed.

czerny
« Last Edit: May 10, 2012, 08:03:56 AM by czerny »

CommonTater

  • Guest
Re: polib: broken error message
« Reply #26 on: May 09, 2012, 05:17:24 PM »
In all due respect,  my friend, you've caught yourself in a time warp and now it's starting to catch up to you. 

You've moved on to a compiler/etc setup that postdates your Operating System by more than a decade.  The Winodws Libraries and Headers appear to correspond most closely with Vista... and this means there are bucketloads of stuff in them that will compile/link quite happily and then crash like crazy on your operating system, because the underlying DLL code simply isn't there. 

You will also begin to find tools, like POLIB, that won't even run on your old OSs... 64 bit Windows won't even run 16 bit code anymore and version lockouts are becomming more and more common. None of my software (even the free stuff) will run on any OS before XP-SP1 since most of it us using API calls that simply didn't exist before then, so I block them to prevent crashes.

It would seem that your problem with my AddIn was merely the first sign of things to come and it's bound to get continually worse for you as time goes on.  In fact, it's even starting to happen with XP users... as quite a number of Vista/7 only apps are now out there... Windows 8 will make it a lot worse since the UI has been substantially trashed reworked.

The thing is that when you are working with antique systems you really should be working with headers and libraries that closely match that version of the OS and in this case that means you probably should be working with Pelles C 3 or 4, certainly not 7.  (You can get older versions... HERE )
 
In nothing more than a sincere desire to help you, I do have to wonder why on earth you are so horridly opposed to updating your systems. 
 
I understand from our past conversations that you have a long series of softwares installed that you don't want to have to reinstall... and I'm guessing it's because you don't have the distributions of the software.  Thing is with a new OS you would likely discover newer versions of the same software or other packages that do the same things for you.  Except this time... you need to archive the distributions away on an external hard drive or DVDs so you have them in case you need to reinstall.
 
XP is very flexible.  It was meant to heal the wound ME caused and it will run on almost any 32 bit PC.  It is also the most compatible with Linux Wine. There are tons of drivers out there and most hardware manufacturers are still updating for XP. Most freeware and shareware still runs fine on XP (I've only run into one problem, with a Codec, and it took me about 6 seconds to find an XP compatible version).  Literally anything that works on 95, 98, ME, 2000 is going to work on XP... it can also use win2000 drivers. 
 
All this began with your objection to my use of "Visual Styles"... I'm sorry to be blunt, but that's a terrible reason to not update your systems.  They can be turned off with nothing more than unchecking a box in the System -> Performance -> Advanced dialog.  From there, XP looks just like Win2000... except it doesn't crash when it encounters controls that use VS.
 
Your problem is only going to get worse with time and I'm thinking all your excuses not to update your systems have pretty much evaporated.
 

czerny

  • Guest
Re: polib: broken error message
« Reply #27 on: May 09, 2012, 06:33:56 PM »
In all due respect,  my friend, you've caught yourself in a time warp and now it's starting to catch up to you. 

You are right in this and I know that I have to update.

Quote
You've moved on to a compiler/etc setup that postdates your Operating System by more than a decade.  The Winodws Libraries and Headers appear to correspond most closely with Vista... and this means there are bucketloads of stuff in them that will compile/link quite happily and then crash like crazy on your operating system, because the underlying DLL code simply isn't there. 

You will also begin to find tools, like POLIB, that won't even run on your old OSs... 64 bit Windows won't even run 16 bit code anymore and version lockouts are becomming more and more common. None of my software (even the free stuff) will run on any OS before XP-SP1 since most of it us using API calls that simply didn't exist before then, so I block them to prevent crashes.

Here you are not right.
I do not need any function which only exist in XP and above. But I like to write software which runs under xp and above TOO. It should be in the responsibility of the programmer which functions to use. So with POLIB. Is there a function missing in win2k needed to compile POLIB? I question that.

Quote
All this began with your objection to my use of "Visual Styles"... I'm sorry to be blunt, but that's a terrible reason to not update your systems.

Oh no. That's not the reason.

I am as obstinate  as I am, because this game will go on in few years with XP, because we are not the doers, we are other-directed by commercial interests.  But once more, you are right, it is silly to insist on this. I will buy a quicker machine and update.


CommonTater

  • Guest
Re: polib: broken error message
« Reply #28 on: May 09, 2012, 07:43:29 PM »
Quote
You've moved on to a compiler/etc setup that postdates your Operating System by more than a decade.

Here you are not right.
I do not need any function which only exist in XP and above. But I like to write software which runs under xp and above TOO. It should be in the responsibility of the programmer which functions to use. So with POLIB. Is there a function missing in win2k needed to compile POLIB? I question that.

The problem with this approach is that you can't TEST software under those conditions.  If you are incorporating code that uses API calls that don't exist on your system, it is literally impossible for you to test it since it will just crash on your machine.  So, what you end up doing is writing code that works on your system and then counting on "backwards compatibility" in other systems to see it work.  Mostly this is OK, but as you've seen there are many cases where it does come back to bite you... Worst case, you are releasing untested code.

Quote
I am as obstinate  as I am, because this game will go on in few years with XP, because we are not the doers, we are other-directed by commercial interests.  But once more, you are right, it is silly to insist on this. I will buy a quicker machine and update.
The whole world is directed by commercial interests... rebelling against that in such a way that you are the only person affected really doesn't make a lot of sense.

Before you go spending a bunch of money on hardware... try installing XP on your existing system.  Really... if Win2000 runs, XP will most likely work as well... Heck, my cousin's got  XP installed here on an old Penitum 3 machine his kid uses to do homework...






Offline Stefan Pendl

  • Global Moderator
  • Member
  • *****
  • Posts: 582
    • Homepage
Re: polib: broken error message
« Reply #29 on: May 09, 2012, 09:26:08 PM »
I think it is a problem with the sub-system version, since our executables are compiled for Windows 2003 and are still working on Windows NT 4.0 (see attached images).

@Ralf, sad that the PE patcher is a 16-bit application and doesn't support 64-bit executables ;)
---
Stefan

Proud member of the UltraDefrag Development Team