Build errors with recent checkout
Bill Baxter
wbaxter at gmail.com
Mon Sep 8 00:51:32 PDT 2008
Just did an update of DWT for the first time in a long time and got
these errors building the dwt-win library:
dwt\graphics\TextLayout.d(135): function
dwt.internal.win32.WINAPI.IIDFromString (wchar*,byte*) does not match
parameter types (char*,byte*)
dwt\graphics\TextLayout.d(135): Error: cannot implicitly convert
expression (cast(char*)toCharArray("{275c23e2-3747-11d0-9fea-00aa003f8646}\x00"))
of type char* to wchar*
dwt\graphics\TextLayout.d(136): function
dwt.internal.win32.WINAPI.IIDFromString (wchar*,byte*) does not match
parameter types (char*,byte*)
dwt\graphics\TextLayout.d(136): Error: cannot implicitly convert
expression (cast(char*)toCharArray("{DCCFC162-2B38-11d2-B7EC-00C04F8F5D9A}\x00"))
of type char* to wchar*
I'm using the released Tango 0.99.7 version built from source.
These lines that are the source of the error appear to be incorrect.
OS.IIDFromString("{275c23e2-3747-11d0-9fea-00aa003f8646}\0".toCharArray().ptr,
CLSID_CMultiLanguage.ptr);
IIDFromString takes a wide char string in the Win32 api, and
toCharArray from dwthelper\utils.d is returning a regular char[].
One fix would be to make a new "toWCharArray" function in utils.d,
with body like this:
public wchar[] toWCharArray( String str ){
return toString16(str);
}
Then use that in TextLayout instead of toCharArray. Or just stick the
toString16 directly in TextLayout.
--bb
More information about the Digitalmars-d-dwt
mailing list