OldSchoolHack

Register / Login English

Gdi+ DrawString gibt Symbole statt Text aus

icon Thread: Gdi+ DrawString gibt Symbole statt Text aus

Join Date: Oct 2011

Posts: 48

Ich zeichne mit Gdi+, Boxen und sowas gehen, aber wenn ich Strings ausgeben will werden nur wirre Zeichenkombinationen ausgegeben.


CPP Code:
  1. CDrawPlus()
  2. {
  3. GdiplusStartup(&this->dwGdiStartup, &gdiStartup, NULL);
  4. }
  5. //[...]
  6. void Init(HDC hdc, Color clr, char* fontname, int fontsize)
  7. {
  8. this->p_gdiGraph = new Graphics(hdc);
  9. this->p_pen = new Pen(clr, 1);
  10. this->p_font = new Font((WCHAR*)fontname, fontsize);
  11. this->p_brush = new SolidBrush(clr);
  12. }
  13. //[...]
  14. void DrawString(int x, int y, Color clr, char* text, ...)
  15. {
  16. va_list va_alist;
  17. char buffer[1024] = { 0 };
  18. va_start(va_alist, text);
  19. vsprintf(buffer, text, va_alist);
  20. va_end(va_alist);
  21.  
  22. this->p_brush->SetColor(clr);
  23. this->p_gdiGraph->DrawString((WCHAR*)buffer, -1, this->p_font, PointF(x,y), this->p_brush);
  24. }
edit: da in der zeile müsste das: char buffer[1024] = {'\0'}; stehen, und nix mit
TEXT Code:
  1. 0[/ code]
  2. [code=cpp]
  3. gDraw.Init(GetWindowDC(hWnd), Gdiplus::Color(255,255,255,255), "Arial", 12);
  4. //[...]
  5. gDraw.DrawString(iScreenPos[0], iScreenPos[1]-15, Gdiplus::Color(255,settings.ct_r, settings.ct_g, settings.ct_b), "HP: %i ", pPlayer[i].health);


Auf meinem Bildschirm wird dann sowas anstatt der HP angezeigt:
Only registered and activated users can see links.

Jemand ne Idee woran das liegen könnte oder hatte den Fehler schonmal?