mikrocontroller.net

Forum: PC-Programmierung XGraph von Codeproject.com lässt sich nicht übersetzen


Autor: Ingo (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo ich habe mir von der Internetseite codeproject.com das Demo von 
Xgraph heruntergeladen. Mit Microsoft Visual Studio C++ 2008 (Prof.) 
habe ich dieses Projekt geöffnet. Beim Übersetzen erscheinen zahlreiche 
Fehlermeldungen. Wahrscheinlich liegt es daran, dass dieses Projekt ein 
MFC Projekt ist. Müsste ich in Microsoft Visual Studio C++ 2008 (Prof.) 
irgendwelche Einstellungen vornehmen?

Fehlermeldung:
Fehler  1  error C4430: Fehlender Typspezifizierer - int wird 
angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. 
c:\dokumente und 
einstellungen\user\desktop\xgraph_demo\include\gfxutils.h  70 
XGraphTest

Autor: Ingo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe nun den Kompiler auf "Als C-Code kompilieren (/TC)" 
eingestellt.
Jetzt erscheint nur eine Fehlermeldung:

Fehlermeldung:
Fehler  1  fatal error C1189: #error :  MFC requires C++ compilation 
(use a .cpp suffix)  c:\programme\microsoft visual studio 
9.0\vc\atlmfc\include\afx.h  15  XGraphTest

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist zwar nur eine Fehlermeldung, aber eine noch viel 
schwerwiegendere. Das ist MFC-Code, und MFC-Code erfordert C++.
Ein C-Compiler kann das gar nicht übersetzen.

Lass also diese falsche Compilereinstellung sein und versuche, das 
erste Problem zu lösen.

Zeile 70 in gfxutils.h ist
  operator= (const CRgnEx& copy) { CreateRectRgn(0,0,0,0); CopyRgn((CRgn*) (&copy)); };

Ich glaube nicht, daß die diese Fehlermeldung hervorruft.

Was passiert, wenn Du auf die Fehlermeldung einen Doppelklick machst.

Autor: Ingo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok ich hab nun den Kompiler wieder auf C++ gestellt. War blöd von mir.

Nun weiss ich nicht wie ich diese Meldung beheben kann:

Fehler  1  error C4430: Fehlender Typspezifizierer - int wird 
angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. 
c:\dokumente und 
einstellungen\user\desktop\xgraph_demo\include\gfxutils.h  70 
XGraphTest

Autor: Ingo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich verzweifle noch. Es muss doch möglich sein, dass dieses Beispiel 
unter Microsoft Visual Studio C++ 2008 (Prof.) läuft. Das ist echt 
tricky.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier habe ich zwar ein Fragezeichen vergessen, aber ich zitiere mich 
trotzdem mal:

> Was passiert, wenn Du auf die Fehlermeldung einen Doppelklick machst?

Welcher Code wird dann angezeigt?

Autor: Ingo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Rufus,

wenn ich einen Doppelclick darauf mache, erscheint die Codestelle
operator= (const CRgnEx& copy) { CreateRectRgn(0,0,0,0); CopyRgn((CRgn*) (&copy)); };
. Diese Codestelle befindet sich in der Headerdatei "gfxutils.h".

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann sind immerhin das VC und mein Editor der gleichen Ansicht, was die 
Zeilennummer betrifft.

Der Fehler liegt hier darin, daß für operator= kein Rückgabewert 
definiert wurde. Das ist ... schluderig.

Probier mal das hier:
 CRgnEx& operator= (const CRgnEx& copy) { CreateRectRgn(0,0,0,0); CopyRgn((CRgn*) (&copy)); };

Insgesamt scheint das Ding ziemlich hingeschludert zu sein, willst Du 
Dir das wirklich antun?

Wie Du übrigens an den Kommentaren auf CodeProject (denen Du selbst 
relativ sinnlos einen deutschsprachigen hinzugefügt hast) entnehmen 
können dürftest, macht dieser Code Probleme beim Übersetzen mit neueren 
MS-Compilern.

Und wie Du auch feststellen können solltest, hat der Autor vor 5 Jahren 
die Entwicklung eingestellt.

Autor: Ingo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke! Hab nun noch zwei Fehlermeldungen:

Fehler  2  fatal error CVT1100: duplicate resource.  type:MANIFEST, 
name:1, language:0x0409  CVTRES  XGraphTest

Fehler  3  fatal error LNK1123: Fehler bei der Konvertierung in COFF: 
Datei ist ungültig oder beschädigt.  XGraphTest  XGraphTest

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da wirst Du Dich jetzt selber durchbeißen müssen, ich habe hier weder 
einen MS-Compiler noch einen Rechner mit Windows ...

Resourcen vom Typ Manifest sind nicht unbedingt nötig, sieh Dir mal die 
Manifest-Einstellungen Deiner Entwicklungsumgebung an.

Ganz merkwürdig ist allerdings die Linkerfehlermeldung mit COFF - seit 
wann verwendet Microsoft das?

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rufus t. Firefly schrieb:

> Insgesamt scheint das Ding ziemlich hingeschludert zu sein, willst Du
> Dir das wirklich antun?

Teile davon wirken wirklich ziemlich hingeschludert.
Chris Maunder schreibt normalerweise wesentlich besser. Da dürfte jemand 
drann gewesen sein, der nicht wirklich wusste was er tat.

Ausserdem: Was willst du damit? Das ist eine fertige Lib. Ohne Source 
Code der Implementierung ist so etwas ziemlich wertlos, weil du keine 
für dich notwendigen Anpassungen machen kannst.

Bei Codeproject hab ich mir schon lange angewöhnt, die Sourcen als 
Vorlage bzw. Studie zu sehen, die eine Idee vermitteln. Ganz selten, 
dass ich von dort etwas übernehmen konnte, an dem ich nicht Hand anlegen 
musste.
Als Technologielieferant bzw. als Demo wie man bestimmte Dinge machen 
kann, ist Codeproject aber immer einen Blick wert.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.