2013-07-14 37 views
2

你好朋友我怎样才能将类型“int”转换为类型“LPCSTR”?我想将变量“int cxClient”赋予“MessageBox”函数的第二个参数“LPCSTR lpText”。以下是示例代码:如何将类型“int”转换为在Win32中输入“LPCSTR”C++

int cxClient;  
cxClient = LOWORD (lParam);  
MessageBox(hwnd, cxClient, "Testing", MB_OK); 

但它不起作用。下面的功能是“消息框”功能的方法签名:

MessageBox(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType); 

回答

6

通过使用正确的sprintf变种

TCHAR buf[100]; 
_stprintf(buf, _T("%d"), cxClient); 
MessageBox(hwnd, buf, "Testing", MB_OK); 

需要<tchar.h>转换的int值的字符串。

我觉得_stprintf是快速的答案在这里 - 但如果你想要去的纯C++像大卫建议,然后

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

oss<<cxClient; 

MessageBox(0, oss.str().c_str(), "Testing", MB_OK); 

你需要

#include <sstream> 
using namespace std; 
+0

由于该问题被标记为C++,也许C++的答案会更好 –

+0

@DavidHe ffernan - 用ostringstream也添加一个。 – user93353

+0

哇!我知道了。现在“MessageBox”函数可以显示我想要的变量:D。以下是我的工作代码: #include using namespace std; #ifdef _UNICODE wostringstream oss; #else ostringstream oss; #endif oss << cxClient; MessageBox(hwnd,oss.str()。c_str(),“Testing”,MB_OK); 非常感谢你 :D –