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);
    	}
    }
    

  • Mod

    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.


Anmelden zum Antworten