在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的任何标签,因此请编辑是否更合适的标签!

最佳答案

sprintf用于窄字符串。 LPCWSTRconst WCHAR *,因此您需要宽字符和正确的功能。

例如。

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

或使用通用文本函数,并使用UNICODE进行编译,
TCHAR buf[100];
StringCchPrintf(buf, _countof(buf), _T("Hello, world!"));

(您可以使用其他功能,例如_stprintf_sswprintf_s等)

关于c++ - 在C++(Zune/ZDK)的WinCE上构造LPCWSTR,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2664809/

10-11 21:32