如何在Win32 C++中将类型"int"转换为"LPCSTR"类型

Bha*_*gya 2 c++ winapi messagebox

朋友您好,如何将类型"int"转换为"LPCSTR"类型?我想将变量"int cxClient"赋予"MessageBox"函数的第二个参数"LPCSTR lpText".以下是示例代码:

int cxClient;    
cxClient = LOWORD (lParam);    
MessageBox(hwnd, cxClient, "Testing", MB_OK);
Run Code Online (Sandbox Code Playgroud)

但它不起作用.以下函数是"MessageBox"函数的方法签名:

MessageBox(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType);
Run Code Online (Sandbox Code Playgroud)

use*_*353 6

使用正确的sprintf变体将int转换为字符串

TCHAR buf[100];
_stprintf(buf, _T("%d"), cxClient);
MessageBox(hwnd, buf, "Testing", MB_OK);
Run Code Online (Sandbox Code Playgroud)

你需要<tchar.h>.

我认为这_stprintf是一个快速的答案 - 但如果你想像大卫建议的那样去纯C++,那么

#ifdef _UNICODE
wostringstream oss;
#else
ostringstream oss;
#endif

oss<<cxClient;

MessageBox(0, oss.str().c_str(), "Testing", MB_OK);
Run Code Online (Sandbox Code Playgroud)

你需要

#include <sstream>
using namespace std;
Run Code Online (Sandbox Code Playgroud)