Windows CE almost exclusively uses wide-character (two bytes per character) strings, and if you have to present a “multi-byte string” (i.e. a string composed of single-byte characters) you usually have to use one of the conversion functions like
size_t mbstowcs(
wchar_t* wcstr,
const char* mbstr,
size_t count
);
which is an ANSI function that converts multi-byte strings to wide-character strings using your current codepage (which can be set with SetLocale()) , or
int MultiByteToWideChar(
UINT CodePage,
DWORD dwFlags,
LPCSTR lpMultiByteStr,
int cbMultiByte,
LPWSTR lpWideCharStr,
int cchWideChar
);
which is a Windows function that actually accepts a codepage as a parameter.
However, if you want to quickly combine wide-character and multi-byte strings, you can do it simply with the %hs format specifier like this:
char s[] = “Multi-byte String”;
RETAILMSG(1, (L”This string is no longer a %hs\r\n”, s));// note: the (L”") macro defines that the string in quotes is wide char