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 指的是用于被黑 Zunes 的 ZDK,可在以下网址获得:http: //zunedevwiki.org

这行代码适用于消息框调用:

ZDKSystem_ShowMessageBox(L"Hello Zune", MESSAGEBOX_TYPE_OK);

我的基本目标是查看在 Zune HD 上运行的 WinCE 的确切版本,以了解哪些功能可用(即它是 R2 还是更早版本?)。

此外,我还没有看到 ZDK 的任何标签,所以如果有更合适的内容,请编辑!

4

2 回答 2

3

sprintf 用于窄字符串。LPCWSTR是 a 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 回答