Any chance of some help with this?
Yesterday i submitted a unit test for wsprintfA. I didn't include wsprintfW
because I couldn't get it to work right. I still can't. I think it's
something to do with the calling convention (since wsprintf uses cdecl, not
stdcall). Here's the test code itself;
static BOOL wsprintfWTest (void)
{
WCHAR buf[25];
static const WCHAR fmt[] = {'%','0','1','0','l','d','\0'};
WCHAR target[] = {'-','0','0','0','0','0','0','0','0','1'};
printf ("%p %p\n", buf, fmt);
ok ((wsprintfW (buf, fmt -1) == 10), "wsPrintfW length failure");
ok ((lstrcmpW (buf, target) == 0),
"wsprintfW zero padded negative value failure\n");
return TRUE;
}
but if I print the addresses of buf and fmt from within wsprintfW I get the
same values for buf but for fmt I get a smaller pointer (0x401ecac instead
of 0x401ecae)
(and I can't figure out how to get at it in gdb to see exactly what is going
on).
Am I missing something obvious?
Bill