Alexander wrote: > On 29.04.2011 11:41, Spacen Jasset wrote: > >> You still *cannot* link statically to kernel32.dll. That's the >> difference. Linux glibc contains the C library functions *and* the >> syscalls, which is the bit that causes the problems. > > But at least I know, that no matter where I am, as long as I am using > kernel32 only (no more dependencies), it will work on *any* Windows > system (obviously, keeping backward compatibility in mind - something > compiled on WinXP will work on all later > versions) - which is not he case of Linux/glibc, unfortunately. > >> msvcrt.dll and msvcrt.lib don't have any syscalls in them. they call >> though kernel32.dll dynamically. > > Actually, they do. Calling kernel32 is like making a syscall, that's the > base of Win32 API, which is equivalent of Linux syscall.
A syscall is generally understood to be a call into the kernel for doing something that can't be done with user level privileges. So a call is either a syscall or it isn't, and none of kernel32 are. There are even functions in kernel32 which do not make a syscall.