Zum Inhalt springen

Neu in VS2005 Hilfe!!


Filou

Empfohlene Beiträge

Hi!

ich habe mich heute erstmals mit C++ unter Visual Studio 2005 befasst.

Leider funktioniere einige der Klassen nicht mehr, die ich früher verwendet habe.

Darunter die "Label.cpp", mit der man einen Text formatieren kann, Farbe, Fett, Hyperlink,usw...

Ich bekomme immer die Fehlermeldung:

label.cpp(119) : error C2664: 'strcpy': Konvertierung des Parameters 2 von 'const CString' in 'const char *' nicht möglich

Hier ist der Code dazu:

CLabel& CLabel::SetFontName(const CString& strFont)

{	

	strcpy(m_lf.lfFaceName,strFont);

	ReconstructFont();

	RedrawWindow();

	return *this;

}
Ein weiterer Fehler:
CWnd::SetWindowTextW': Konvertierung des Parameters 1 von 'const char [1]' in 'LPCTSTR' nicht möglich
Code:
SetWindowText("");

Wieso hat das unter VS6 geklappt und jetzt gehts nicht mehr?

Könnt Ihr mir helfen?

LG, Filou

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin,

Ich glaub bei deinem zweiten Problem sollte ein SetWindowtext(_T("")); oder so ähnlich abhilfe schaffen.

Bei dem ersten Problem stehts doch schon fast da.

error C2664: 'strcpy': Konvertierung des Parameters 2 von 'const CString' in 'const char *' nicht möglich

Entweder du versuchst mal ein paar Dereferenzierungsoperatoren oder gibts vielleicht eine Get-Methode?

MfG Hexagon

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin,

Ich glaub bei deinem zweiten Problem sollte ein SetWindowtext(_T("")); oder so ähnlich abhilfe schaffen.

Bei dem ersten Problem stehts doch schon fast da.

error C2664: 'strcpy': Konvertierung des Parameters 2 von 'const CString' in 'const char *' nicht möglich

Entweder du versuchst mal ein paar Dereferenzierungsoperatoren oder gibts vielleicht eine Get-Methode?

MfG Hexagon

Zum ersten Teil DANKE!!!

Ich werde es testen.

Zum zweiten... Das habe ich nicht verstanden.

Diese Klasse ist nicht von mir. Ich hab kein Schimmer wie das gestrickt ist geschweige denn, wieso es plötzlich nicht mehr funktioniert.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Zum zweiten... Das habe ich nicht verstanden.

Diese Klasse ist nicht von mir. Ich hab kein Schimmer wie das gestrickt ist geschweige denn, wieso es plötzlich nicht mehr funktioniert.

Weil Microsoft die Klasse CString in ein template geändert hat.

Dabei ist wohl der Operator LPCTSTR "verloren" gegangen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nein, da ist nichts verlorengegangen. Das (erste) T in LPCTSTR steht für TCHAR. Das ist aber in VS2005 per default nicht mehr char, sondern WCHAR, als ein wide character. Alle Literale, die mit TCHAR zu tun haben, müssen in _T() eingeschlossen werden, damit das Literal je nach Compilereinstellung mit einem führenden L versehen wird, also:

LPCTSTR extensions = _T("Hallo Welt");

Mann kann natürlich auch in den Projekteinstellungen den Zeichensatz wieder von Unicode auf Multibyte stellen. Für die Portierung eines bestehenden Projekts ist das sicher einfacher.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Weil Microsoft die Klasse CString in ein template geändert hat.

Dabei ist wohl der Operator LPCTSTR "verloren" gegangen.

Achso... Danke Dir!! :-)

Das is aber ziemlich schei**! Jetzt kann ich meinn alten code nicht mehr verwenden. Hab schon verschiedene Sachen getestet... Es knallt fas immer in irgendeiner Funktion...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Achso... Danke Dir!! :-)

Das is aber ziemlich schei**! Jetzt kann ich meinn alten code nicht mehr verwenden. Hab schon verschiedene Sachen getestet... Es knallt fas immer in irgendeiner Funktion...

Bitte, bitte. Gern geschehen, aber...

Mann kann natürlich auch in den Projekteinstellungen den Zeichensatz wieder von Unicode auf Multibyte stellen. Für die Portierung eines bestehenden Projekts ist das sicher einfacher.

Hast Du das gelesen und auch verstanden? :nett:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...