c++ - 使用 C++ (Zune/ZDK) 在 WinCE 上构建 LPCWSTR

标签 c++ string windows-ce zune

在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 适用于窄字符串。 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_sswprintf_s 等)

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

相关文章:

c++ - 您能否仅使用标准 c++/c++11 实现没有 "sleep"的计时器?

C++ 用两种不同的方式初始化指针会产生两个答案

c - 如何为没有空字符的字符串计算 strlen?

java - 从字符串到整数函数

iphone - J2ME VS Android VS iPhone VS Symbian VS Windows CE

c# - 在 Windows CE 上接收 UDP 单播视频流

c++ - 如何配置Clion来编译gtkmm项目

c++ - 无效的用户定义转换

python - 如何对 Python 字符串中的特殊字符进行转义?

c# - 为什么所有内容都打印在同一行上,即使我添加了 crlfs?