Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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

Geschrieben
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.

Geschrieben

WIESO GEHT IN VS2005 DAS HIER NICHT MEHR:

LPCTSTR extensions = "Hallo Welt";

Ich verstehe es nicht?

EDIT:

es liegt auch hier an diesem _T was immer das auch macht :rolleyes:

Geschrieben
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.

Geschrieben

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.

Geschrieben
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...

Geschrieben
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:

Geschrieben

Danke Klotzkopp!

Deinen Beitrag hatte ich überlesen. Ich habe nur den untersten Beitrag gelesen als ich die E-Mail bekam.

Jetzt kalppts wieder :-)

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...