Announcement

Collapse
No announcement yet.

VisualC++ code GCC fähig machen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • VisualC++ code GCC fähig machen

    Hallo zusammen,

    im Moment beschäftige ich mich mit dem SDK3 von Synthedit.
    Ich weiss das selbiges mit Visual C++ geschrieben wurde. Ich selbst benutze
    aber den GNU Gcc Compiler und Codeblocks als IDE.
    Im download zur SDK sind auch einige Beispiele dabei. Die meisten lassen
    sich auch mit Gcc Compilieren. Bei einem Beispiel bekomme ich immer die selbe
    Fehlermeldung und weiss nicht wie ich diese beheben kan. Muss allerdings dazusagen dass ich noch nicht richtig standfest in C++ bin. Wie dem auch sei,
    erstmal die Stelle die den Fehler verursacht...

    Code:
    if( height > 30 )
    	{
    		int fontHeight = fontInfo_.fontHeight;
    
    		HGDIOBJ old_font = SelectObject( hDC, font_handle );
    
    		SetTextColor( hDC, fontInfo_.color );
    		SetBkMode( hDC, TRANSPARENT );
    		SetTextAlign( hDC, TA_LEFT );
    
    		for( int v = -10 ; v < 11 ; v += 5 )
    		{
    			wchar_t txt[10];
    			float y = v * scale / 10.f;
    			swprintf(txt, L"%2.0f", (float) v);
    
    			TextOut(hDC, mid_x + tick_width, mid_y - (int) y - fontHeight/2, txt, (int) wcslen(txt));
    		}
    
    		SelectObject(hDC, old_font);
    	}
    Die Fehlermeldung....

    Code:
    C:\se_sdk3\Scope4\Scope3Gui.cpp:151: error: cannot convert `wchar_t*' to `const CHAR*' for argument `4' to `BOOL TextOutA(HDC__*, int, int, const CHAR*, int)'
    also ein Konvertierungsproblem. Was mich am meisten irritiert ist das const in der Fehlermeldung. Wer sich den gesammten Quelltext ansehen will kann sich das SDK hier runterladen. Scope3 heist das beispiel. Die Dokumentation zur SDK ist leider noch sehr dürftig und ich bin nur mittelmäsig im Headerfiles lesen.
    Mit dem Scope Beispiel der SDK2 gibts übrigens genau das selbe Problem.

    Hoffe auf einen wink mit dem Zaunpfahl, oder ein Fingerzeig in die richtige Richtung.
    Ein selbst-reproduzierendes C-Programm:
    main(){char*c="main(){char*c=%c%s%c;printf(c,34c,3 4,10);}%c";printf(c,34,c,34,10);}
    (Aber ich hab’s noch nicht ausprobiert!)

  • #2
    Textout arbeitet nicht mit wchar... es will ein char
    Christian

    Comment

    Working...
    X