Создайте LPCWSTR на WinCE в C ++ (Zune / ZDK) - PullRequest
1 голос
/ 19 апреля 2010

Какой хороший способ построить LPCWSTR на WinCE 6? Я хотел бы найти что-то похожее на String.Format () в C #. Моя попытка:

OSVERSIONINFO   vi;

memset (&vi, 0, sizeof vi);
vi.dwOSVersionInfoSize = sizeof vi;
GetVersionEx (&vi);

char buffer[50];
int n = sprintf(buffer, "The OS version is: %d.%d", vi.dwMajorVersion, vi.dwMinorVersion);

ZDKSystem_ShowMessageBox(buffer, MESSAGEBOX_TYPE_OK);

Что ZDKSystem_ShowMessageBox ссылается на ZDK для взломанных Zunes, доступных по адресу: http://zunedevwiki.org

Эта строка кода хорошо работает с вызовом окна сообщения:

ZDKSystem_ShowMessageBox(L"Hello Zune", MESSAGEBOX_TYPE_OK);

Моя основная цель - взглянуть на точную версию WinCE, работающую на Zune HD, чтобы узнать, какие функции доступны (т.е. это R2 или более ранняя версия).

Также я не видел никаких тегов для ZDK, поэтому, пожалуйста, отредактируйте, если что-то более подходящее!

Ответы [ 2 ]

3 голосов
/ 19 апреля 2010

sprintf для узких строк. LPCWSTR - это const WCHAR *, поэтому вам нужны широкие символы и правильная функция.

* 1005 Е.Г. *

WCHAR buf[100];
StringCchPrintfW(buf, _countof(buf), L"Hello, world!");

или используя универсальные текстовые функции и компилируя с UNICODE,

TCHAR buf[100];
StringCchPrintf(buf, _countof(buf), _T("Hello, world!"));

(есть и другие функции, которые вы можете использовать, например _stprintf_s, swprintf_s и т. Д.)

0 голосов
/ 19 апреля 2010
CString buffer;
buffer.Format(_T("The OS version is: %d.%d"), vi.dwMajorVersion, vi.dwMinorVersion);
...