【问题标题】:Proper way of converting int to LPCWSTR (Win32)将 int 转换为 LPCWSTR (Win32) 的正确方法
【发布时间】:2010-09-23 16:40:19
【问题描述】:

我正在尝试学习基本的 Win32 编程,但遇到了一个令人沮丧的问题。我希望转换一个变量(称之为 NumClicks)并将其显示为应用程序名称(作为字符串的一部分)。 据我所知,从 int + 一些文本块转换为 char* 是有问题的,因为将其转换为必需的结束数据类型 (LPCWSTR) 比直接转换更困难。

任何想法或链接?

【问题讨论】:

    标签: c winapi type-conversion


    【解决方案1】:

    使用wsprintf
    它允许您以与 printf 允许您打印一行文本相同的方式编写字符串。

    【讨论】:

    • 哪种方式不能完全解决您的问题?顺便说一句,你最好使用更安全(并且仍然是标准的)wsnprintf。
    【解决方案2】:

    _itow_s

    如果您要寻找的不仅仅是 INT 到 LPWSTR 的转换(例如格式化),我建议您使用 StringCchPrintfW

    【讨论】:

      【解决方案3】:

      而不是使用 wsprintf 我会使用 sprinf(buf, "%S", "plain old string");

      【讨论】:

      • 结果你没有得到一个宽字符串,而是他需要的(LPCWSTR = const wchar_t *)。
      【解决方案4】:

      这是我在需要 LPCWSTR 时使用的代码:

      
      int f =55;  
      wchar_t buffer[10];
      _itow_s (f, buffer, 10);
      func_using_lpcwstr_as_parameter(buffer);
      

      注意此示例中的缓冲区溢出

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-11-22
        • 2014-02-07
        • 2011-07-10
        • 2012-08-16
        • 2012-01-24
        • 1970-01-01
        • 2011-11-13
        • 2013-05-12
        相关资源
        最近更新 更多