Wed Sep 16 06:40:00 GMT 1998

TryEnterCriticalSection is not defined in the version of kernel32.dll under
windows 95.

Now, if Mumit would add an entry to the import libraries, this would make
the linker happy but... at run time your program would not load and you 
would get a dialog box with
foo.exe is linked to missing export TryEnterCriticalSection.

You have to use windows NT 4.0 or higher to get that function. 
The correct solution for this problem is obvious:

Mumit would have to duplicate all import libraries, to account for the fact
that the APIs differ: one for windows 95 users, and the other for Windows NT
3.5, and yet another for windows NT 4.0. With the appearing of windows NT 5.0 the
set of needed libraries would increase by yet another one.

Then, Mumit would have to look at all the (approx 3000) APIs of the basic 
win32 API and see if the exist under all systems.

Another, solution, is the one that lcc-win32 has used: If a function exists,
it is included in the import library. If you use TryEnterCriticalSection with
lcc-win32 you will see no errors at link time, but your program will NOT load
under windows 95/windows NT 3.51.

This choice is based in time considerations: I can't do anything else. I can't
have 3 or 4 different sets of import libraries... I think that situation with
gcc is very similar. We are earning no big bucks with this (personally I'm not
earning anything at all!!!) so we have a limited resource pool to do the
enormous amount of work a compiler system requires.

If you have problems with this approach, I recommend you to spend the US$ 2.000
and get Visual Studio professional 6.0.

There, you will get everything you need and much (MUCH) more.

Yours sincerely

Jacob Navia	Logiciels/Informatique
41 rue Maurice Ravel			Tel 01
93430 Villetaneuse 			Fax 01
For help on using this list (especially unsubscribing), send a message to
"" with one line of text: "help".

More information about the Cygwin mailing list