Hi everyone,

            Been trying not to talk too much unless I have something that really looks like it could be causing problems at runtime -- such a problem has, apparently, arisen. (NT4 OS, using Win32api-2.3.tar.gz).

     foo.exe - Entry Point Not Found

     The procedure entry point GetLongPathNameA could not be located in the dynamic link library KERNEL32.dll.

            NT4 does not have that entry point in kernel32.dll, so this is not at all surprising.  What is surprising is that GetLongPathNameA is expected to always be in kernel32.dll.

            I checked the NT4 version of kernel32.dll against the libkernel32.a, and the two are in fact, at odds. libkernel32.a expects GetLongPathNameA to exist in kernel32.dll.  If it does not...well...see above.

            As it stands, NT4 (Windows API Version 4.00) does not place GetLongPathNameA() within kernel32.dll, nor has, afaik, GetLongPathNameA() ever been a part of the NT4 version of kernel32.dll.  That particular entry point is expected by NT4 (Windows API version 4.00) to be in shlwapi.dll.

            I think that in order to make that happen, an ifdef could be defined for winbase.h which leaves the following two entry points undefined if NT4 is current OS (not sure on actual notations):

(winbase.h)

#ifndef (__WINNT__)

DWORD WINAPI GetLongPathNameA(LPCSTR,LPSTR,DWORD);
DWORD WINAPI GetLongPathNameW(LPCWSTR,LPWSTR,DWORD);

#endif

(add to shlwapi.h)

#ifdef (__WINNT__)

DWORD WINAPI GetLongPathNameA(LPCSTR,LPSTR,DWORD);
DWORD WINAPI GetLongPathNameW(LPCWSTR,LPWSTR,DWORD);

#endif

            Paul G.