Hello, Joe.

You wrote Tuesday, January 17, 2012, 12:50:35:

>> For now I've just defined  _WIN32_WINNT  as 0x500, but not sure is
>> it correct, and  will  my application works if it will be launched under
>> Windows  9X.

> This is the correct fix.  Also, most modern Windows projects already
> have the _WIN32_WINNT define set to something (e.g. 0x400, 0x500, etc).

I  have  been thinking about what you said and decided, that
there   is   inconsistency   between  checks  that  runs  in
compilation  time and in runtime. As I understand if I'm not
defining  _WIN32_WINNT,  I'm  compiling  for  Windows 9X, so
compilation    check    decides    that    there    is    no
GetFullPathNameW()  and set pointer for osGetFullPathNameW()
to  NULL.  But  when  I  run  that executable in Windows XP,
runtime  check  isNT()  found  that  it  is Windows NT based
system,  so  it  tried  to call osGetFullPathNameW() instead
osGetFullPathNameA().  I  think that calling check IsNT() is
not  enough,  there is need to check if osGetFullPathNameW()
is  valid  pointer,  and  if  it  is  not there fall back to
!isNT() branch where osGetFullPathNameA() will be called.

-- 
WBR,
 darkelf                          mailto:dark...@ukr.net

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to