【问题标题】:how i show a dWord value in Messagebox api function我如何在 Messagebox api 函数中显示 dWord 值
【发布时间】:2011-03-29 08:24:46
【问题描述】:

我想显示一个带有像这样的 dword 值的消息对话框

MessageBox(0, (LPCWSTR) hProcess ,TEXT("我的消息框信息"),MB_OK | MB_ICONERROR);

hProcess 是一个 DWORD 值,但是当出现消息框时,应该显示 dowrd 值的消息正文部分为空。

【问题讨论】:

    标签: c++ messagebox dword


    【解决方案1】:
    TCHAR msg[100];
    
    StringCbPrintf(msg, 100, TEXT("%d"), hProcess);
    
    MessageBox(NULL, msg, TEXT("My MessageBox Info"), MB_OK | MB_ICONERROR);
    

    【讨论】:

    • A DWORD 是无符号类型,因此您应该使用 %u 而不是 %d
    【解决方案2】:
    char *s = (char*)malloc(10);
    sprintf(s, "%d", hProcess);
    MessageBox(NULL, s, ...);
    free(s);
    

    【讨论】:

    • 它会引发以下错误。错误 C2664:“MessageBoxW”:无法将参数 2 从“char *”转换为“LPCWSTR”
    • 你可以投射它,对不起。 MessageBox(NULL, (LPCWSTR)s, ...);
    • 不,您不能将char* 类型转换为wchar_t*LPCWSTR 就是这样)。您需要 1) 使用 TCHAR 而不是 char_stprintf() 而不是 sprintf(),或 2) 使用 MessageBoxA() 而不是 MessageBox()
    【解决方案3】:

    先将值转换为字符串,然后在消息框中显示。

    看看这个:ultoa

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多