2013-07-14 2 views
2

Привет друзья, как я могу преобразовать тип «int» в тип «LPCSTR»? Я хочу передать переменную «int cxClient» во второй параметр функции «MessageBox» «LPCSTR lpText». Ниже приведен пример кода:Как преобразовать тип «int» в тип «LPCSTR» в Win32 C++

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

Но это не работает. Следующая функция является метод подписи функции «MessageBox»:

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

ответ

6

Преобразование Int в строку, используя правильный вариант Sprintf

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

вам нужно <tchar.h>.

Я думаю _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(), «Тестирование», MB_OK); Большое спасибо : D –

Смежные вопросы