C ++ SetDlgItemText Ошибка - PullRequest
       1

C ++ SetDlgItemText Ошибка

0 голосов
/ 19 марта 2012

Я новичок в C ++ и пытаюсь установить текст Editbox с Int. Используя этот код

int MyInt = 100;
SetDlgItemText(MyWindow, EditKills, MyInt);

Я получаю эту ошибку ниже

In function 'BOOL DialogProc(HWND__*, UINT, WPARAM, LPARAM)':|
invalid conversion from 'int' to 'const CHAR*'|

Обновление решено. Я использовал этот код, если кто-то еще имеет эту проблему и нуждается в помощи.

int MyInt = 100;
SetDlgItemInt(MyWindow, EditKills, MyInt, TRUE);

Ответы [ 2 ]

0 голосов
/ 19 марта 2012

Согласно вашему коду, переменная GotValue имеет тип int. Вам нужно преобразовать в LPCTSTR и передать его в качестве третьего аргумента вашей функции SetDlgItemText

char szBuf[MAX_PATH]={0};
_snprintf(szBuf, MAX_PATH-1,"%d",GotValue);

или используйте itoa_s

или

std::ostringstream oss;

oss <<GotValue;

std::string s(oss.str());
s.c_str()
0 голосов
/ 19 марта 2012

Ответ совпадает с ответом на ваш вопрос Неправильное преобразование из 'DWORD' в 'const char *'

C ++ автоматически не преобразует любой тип в строку.Вам придется сделать это вручную с помощью sprintf.

case CSETimer:
int GotValue;
ReadProcessMemory(hProcess, (void*)(MYBASE + 0x728), &GotValue, 4, NULL);
char GotValueStr[10];
sprintf(GotValueStr, "%d", GotValue);
SetDlgItemText(MyWindow, EditKills, GotValueStr);    return TRUE;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...