I found that enabling Unicode support in the Win32 APR project breaks many
functions that rely on the Win32 API, including (at least)
"apr_app_initialize( )" and "apr_file_copy( )".  Specifically, setting the
following compile flag:

# /D "_UNICODE"

Or enabling "Use Unicode Character Set" in the General property tab
(automatically sets said flag) causes the "apr_file_copy( )" function to
fail in "filestat.c" at line 258:

# rv = GetSecurityInfo((HANDLE)ufile, 
#                       SE_FILE_OBJECT, sinf,
#                       ((wanted & APR_FINFO_USER) ? &user : NULL),
#                       ((wanted & APR_FINFO_GROUP) ? &grp : NULL),
#                       ((wanted & APR_FINFO_PROT) ? &dacl : NULL),
#                       NULL, &pdesc);

My theory is that "apr_arch_misc.h" fails to find "GetSecurityInfo", because
Windows actually declares the wide-character version as "GetSecurityInfoW"
when Unicode is enabled.

Regardless, an easy workaround exits -- just don't set that flag.

-david

Reply via email to