Guys,
Sorry I'm coming to this discussion a bit late.
Win XPx64 SP2, VS2008 Pro, XEmacs-21.5.29, native build without cygwin
I've struggled with this for a while, but I made a good go of it
last night and I've a couple of observations I'd like to share before I
do anything else.
[1] unicode-encapsulate.
The only way I could get this to run properly was to go to the
Windows SDK dir (I'm using v6.0A) and remove all the decorations from a
load of functions in 14 header files. I'm referring here to __in,
__out_, __in_opt, etc. I'm sure with some tweaking of
make-mswin-unicode.pl a more elegant solution could be achieved. Or have
I missed something?
[2] In order to make the SHQUERYRBINFO struct visible from
ShellAPI.h, I had to add a couple of defs to xemacs.mak (these were
mentioned earlier in this thread). -DNTDDI_VERSION=NTDDI_WINXPSP2
-D_WIN32_WINNT=_WIN32_WINNT_WINXP
[3] dumper.c (2648) qxeGetModuleFileName had an unwanted cast.
/* cchpathsize = qxeGetModuleFileName (NULL, (Extbyte *) exe_path,
bufsize); */
cchpathsize = qxeGetModuleFileName (NULL, exe_path, bufsize);
[4] intl-auto-encap-win32.c had a few wrapper functions which used
a wide type in the interface and then tried to use this wide type in a
narrow call. Nasty hack used to get this to limp along.
int
qxeMessageBoxIndirect (CONST MSGBOXPARAMSW * lpmbp)
{
if (XEUNICODE_P)
return MessageBoxIndirectW (lpmbp);
else
return -1; /* MessageBoxIndirectA (lpmbp); */
}
As this file is autogened by make-mswin-unicode.pl, my hacks are
plain nasty.
[5] win32.c (165) qxeGetModuleFileName was missing a cast. (TBH,
I've not type checked this :-( - there's clearly a type issue here
though between Extbyte and WCH)
[6] The optional jpeg lib wouldn't link. I took the easy option and
downloaded another prebuilt one for VS2008.
This got things to compile and link, but I've still to resolve the
makeinfo stage (not a big worry).
Firstly, have I missed something? Is there something I could do
which would resolve these issues or, as seems, is building using MS
tools waaay down the list of things to do? It looks like a config step
is needed to set the NTDDI_VERSION and _WIN32_WINNT.
make-mswin-unicode.pl needs a hand filtering some of those header files
however, I'm not 100% on the types used and interfaces generated, so
there may be some other work required here involving dumper.c, win32.c
(and intl-auto-encap-win32.c).
Questions? Comments? Education & instruction? ;-)
Thanks.
-R.
_______________________________________________
XEmacs-Beta mailing list
XEmacs-Beta(a)xemacs.org
http://calypso.tux.org/mailman/listinfo/xemacs-beta