windows - C ++ SetDlgItemText Error

Indlæg af Hanne Mølgaard Plasc

Problem



jeg er ny til C ++ og forsøger at indstille en Editbox-tekst med en Int.
Brug af denne kode


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


Jeg får denne fejl nedenfor


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


Opdatering løst.
Jeg brugte denne kode, hvis nogen andre har dette problem og har brug for hjælp.


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

Bedste reference


Svaret er det samme som svaret på dit spørgsmål Ugyldig konvertering fra 'DWORD' til 'const char *'


C ++ konverterer ikke automatisk nogen type til en streng. Du bliver nødt til at gøre det manuelt med 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;

Andre referencer 1


Ifølge din kode er variablen GotValue int. Du skal konvertere til LPCTSTR og sende det som det tredje argument i din SetDlgItemText-funktion


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


eller brug itoa\_s [9]


eller


std::ostringstream oss;

oss <<GotValue;

std::string s(oss.str());
s.c\_str()