내가이는
메시지 박스 (0, (LPCWSTR) hProcess, TEXT ("내 메시지 박스 정보"), MB_OK 같은 DWORD 값을 가진 메시지 대화 상자를 표시합니다);
hProcess는 DWORD 값이지만 messagebox가 나타나면 dowrd 값을 표시해야하는 메시지의 본문 부분이 비어 있습니다.
내가이는
메시지 박스 (0, (LPCWSTR) hProcess, TEXT ("내 메시지 박스 정보"), MB_OK 같은 DWORD 값을 가진 메시지 대화 상자를 표시합니다);
hProcess는 DWORD 값이지만 messagebox가 나타나면 dowrd 값을 표시해야하는 메시지의 본문 부분이 비어 있습니다.
char *s = (char*)malloc(10);
sprintf(s, "%d", hProcess);
MessageBox(NULL, s, ...);
free(s);
먼저 값을 문자열로 변환 한 다음 메시지 상자에 표시하십시오.
이것 좀 봐 : 그것은 오류 아래에 제기 ultoaTCHAR msg[100];
StringCbPrintf(msg, 100, TEXT("%d"), hProcess);
MessageBox(NULL, msg, TEXT("My MessageBox Info"), MB_OK | MB_ICONERROR);
'DWORD'는 부호없는 타입이므로,'% d' 대신에'% u'를 사용해야합니다. –
. 오류 C2664 : 'MessageBoxW': 'char *'에서 'LPCWSTR'로 매개 변수 2를 변환 할 수 없습니다. – Phoenix
그냥 캐스팅하면됩니다. MessageBox (NULL, (LPCWSTR) s, ...); – Jonathan
아니요,'char *'를'wchar_t *'에 타입 캐스트 할 수 없습니다 (이것은'LPCWSTR'가 무엇인가입니다). 1)'sprintf()'대신'char'와'_stprintf()'대신'TCHAR'을 사용하거나 2)'MessageBox()'대신'MessageBoxA()'를 사용해야합니다. –