1

WinCE 6 で LPCWSTR を構築する良い方法は何ですか? C# で String.Format() に似たものを見つけたいと思います。私の試みは:

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 は、http://zunedevwiki.org で入手可能なハッキングされた Zune の ZDK を参照します

このコード行は、メッセージ ボックスの呼び出しでうまく機能します。

ZDKSystem_ShowMessageBox(L"Hello Zune", MESSAGEBOX_TYPE_OK);

私の基本的な目標は、Zune HD で実行されている WinCE の正確なバージョンを調べて、利用可能な機能を確認することです (つまり、R2 以前ですか?)。

また、私は ZDK のタグを見ていないので、もっと適切なものがあれば編集してください!

4

2 に答える 2

3

sprintf は狭い文字列用です。LPCWSTRは であるconst WCHAR *ため、ワイド文字と適切な関数が必要です。

例えば

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

于 2010-04-19T01:53:47.887 に答える
0
CString buffer;
buffer.Format(_T("The OS version is: %d.%d"), vi.dwMajorVersion, vi.dwMinorVersion);
于 2010-04-19T02:04:23.297 に答える