Integer zu WideString umwandeln
-
Hier ein Codeauszug
Kompilierung --- ok
Ausführen --- Fehler ( unhandle exception )LRESULT CALLBACK WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) { static RECT rect; PAINTSTRUCT ps; HDC hdc = 0; long breite, hoehe; TCHAR* x = L"Hallo"; TCHAR* y = L"Hello"; switch (msg) { case WM_CREATE: return 0; case WM_SIZE: GetWindowRect(hWnd, &rect); return 0; case WM_PAINT: hdc = BeginPaint(hWnd, &ps); breite = rect.right - rect.left; hoehe = rect.bottom - rect.top; wsprintf(x, L"Breite: &d", breite); wsprintf(y, L"Höhe: &d", hoehe); //( Debug Cursor von VC++ 08 zeigt es hier an ) TextOut(hdc, 300, 300, x, wcslen(x)); TextOut(hdc, 300, 320, y, wcslen(y)); EndPaint(hWnd, &ps); return 0; case WM_DESTROY: PostQuitMessage(0); return 0; default: return DefWindowProc(hWnd, msg, wParam, lParam); } }
-
1. Deine Speicher für die Zahlen sind ungültig.
Du musst einen Aray zur Verfdügung stellen und keinen Zeiger auf eine Konstante.
TCHAR x[20], y[20];2. Weiterhin muss es in dem wsprintf %d heißen und nicht &d
3. Wenn Du schon TCHAR verwendest dann kanst Du auch _tsprintf nutzen und den _T Makro für die Konstanten.