Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.de  
   
Forentreff 2012     
Bücher-Shop mit Amazon (Buchkategorien)C++ : Referenzen zu C++ : C++ Builder : Visual C++ : C# : Java : Spieleprogrammierung : Systemprogrammierung Linux : Software-Entwicklung : .NET : Compilertechnik : Algorithmen & Datenstrukturen : Objektorientierung : Entwurfsmuster : UML : eXtreme Programming : Scrum : Projektmanagement : Software-Testing : Datenbanken : Tom DeMarco : Dilbert : User Friendly
C/C++ Forum :: MFC (Visual C++) ::  C-Programm in C++Programm konvertieren????     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
Triple?
Mitglied

Benutzerprofil
Anmeldungsdatum: 07.12.2011
Beiträge: 20
Beitrag Triple? Mitglied 11:27:06 10.01.2012   Titel:   C-Programm in C++Programm konvertieren????            Zitieren

Hallo Leute,
ich hoffe meine Anfrage steht im richtigen Forum.

Meine Aufgabe ist es ein C-Programm, welches mit dem Microsoft Visual Studio 2003 entwickelt wurde, nun in C++ mit dem Visual Studio 2010 zum Laufen zu bekommen und dann zu ändern.

Ich habe es automatisch vom Visual Studio konvertieren lassen und "nur" die zahlreichen Fehler- und Warnmeldungen versucht zu beheben. Doch in dem Programm sind sehr viele Aufrufe von
Code:
malloc
Code:
malloc
Code:
malloc
und viele Funktionen
Code:
strncpy, strcat, wscat, strcpy, wcscpy und sprintf
Code:
strncpy, strcat, wscat, strcpy, wcscpy und sprintf
Code:
strncpy, strcat, wscat, strcpy, wcscpy und sprintf
brauchen jetzt eine Puffergröße. Da ich diese oft nicht kenne, habe ich sicher viele Fehler eingebaut. Es funktioniert jedenfalls nicht.

Hat einer von euch eine Idee wie es besser geht, wo eine Anleitung dazu steht, oder ob es günstiger ist, dass Programm gleich neu zu schreiben??

Vielen Dank schon mal
Triple?
IchVerdrehDieAugen
Unregistrierter




Beitrag IchVerdrehDieAugen Unregistrierter 13:27:25 10.01.2012   Titel:              Zitieren

Ohne die Fehlermeldung der Konvertierung kann Dir Keiner helfen.
Glaskugeln sind rar, selten und teuer.
Schau doch mal in die FAQ. Das wird Deinen Post verbessern
Der Kompiler der IDE VS2010 hat die Libs zu den von Dir benannten Funktionen.
hustbaer
Mitglied

Benutzerprofil
Anmeldungsdatum: 27.10.2006
Beiträge: 13529
Beitrag hustbaer Mitglied 14:14:06 10.01.2012   Titel:              Zitieren

Die von dir genannten Funktionen gibt es in VS 2010 genau so noch, und die brauchen auch keine zusätzlichen Parameter.
Nur dass es Overloads gibt mit zusätzlichen Parametern, bzw. die ganzen ..._s Funktionen als Alternative zu den "alten".
Muss man aber nicht verwenden.

_________________
"Let there be Licht..." http://lichttools.sourceforge.net/
Sehr cooles ASCII Spiel (leider nicht von mir): ASCII-Scramble - http://www.roskakori.at/ascii/
_matze
Mitglied

Benutzerprofil
Anmeldungsdatum: 31.07.2007
Beiträge: 9600
Beitrag _matze Mitglied 14:26:53 10.01.2012   Titel:              Zitieren

Bei malloc musst du in C++ die Rückgabe in den passenden Zeigertyp casten. Beispiel:

C/C++ Code:
//vorher:
int *pi=malloc(10*sizeof(int));

//nachher:
int *pi=(int*)malloc(10*sizeof(int));
C/C++ Code:
//vorher:
int *pi=malloc(10*sizeof(int));

//nachher:
int *pi=(int*)malloc(10*sizeof(int));
C/C++ Code:
//vorher:
int *pi=malloc(10*sizeof(int));

//nachher:
int *pi=(int*)malloc(10*sizeof(int));


Bei den anderen Funktionen werden dir nur Warnungen angezeigt, keine Fehler. Falls es dich trotzdem stört, kannst du den Code umschreiben (z.B. strcpy => strncpy oder strcpy_s), oder aber einfach die Warnung abschalten, indem du _CRT_SECURE_NO_WARNINGS definierst (am besten in den Projekteinstellungen).

_________________
Wie viele atheistische Babys hat man schon aus Versehen - oder gar mit Absicht! - getauft?
Triple?
Mitglied

Benutzerprofil
Anmeldungsdatum: 07.12.2011
Beiträge: 20
Beitrag Triple? Mitglied 15:20:26 20.01.2012   Titel:              Zitieren

Danke für eure Hinweise.
Ich hab den einfachen Weg gewählt und die ganzen Warnungen wegen unsicherer Funktionen mit _CRT_SECURE_NO_WARNINGS unterdrückt, sowie die malloc-Aufrufe mit dem passenden Zeigertyp versehen.
Vielen Dank.

Doch jetzt hab ich noch einen Linker-Fehler. Könnt ihr mir bitte auch dabei helfen?


C/C++ Code:
msimg32.lib(neuralnet.obj) : warning LNK4204: Für "D:\..\..\Debug\vc100.pdb" fehlen Debuginformationen für das Verweismodul;
Objekt wird verknüpft, als ob keine Debuginformationen vorhanden wären.
C/C++ Code:
msimg32.lib(neuralnet.obj) : warning LNK4204: Für "D:\..\..\Debug\vc100.pdb" fehlen Debuginformationen für das Verweismodul;
Objekt wird verknüpft, als ob keine Debuginformationen vorhanden wären.
C/C++ Code:
msimg32.lib(neuralnet.obj) : warning LNK4204: Für "D:\..\..\Debug\vc100.pdb" fehlen Debuginformationen für das Verweismodul;
Objekt wird verknüpft, als ob keine Debuginformationen vorhanden wären.


Mein Projekt ist aus mehreren Unterprojekten (P01 - P04) zusammengesetzt. Wenn ich P04 kompiliere und er alles zusammenlinkt, erscheint die obige Warnung.
Da ich in der Dateien scatter.cpp von P02 msimg32.lib benötige, binde ich sie dort auch ein:

C/C++ Code:
#pragma comment(lib,"msimg32.lib")
C/C++ Code:
#pragma comment(lib,"msimg32.lib")
C/C++ Code:
#pragma comment(lib,"msimg32.lib")


Wieso fehlen jetzt msimg32.lib Debuginformationen über eine andere Datei (nämlich neuralnet.cpp) dieses Projektes?

Ich habe msimg32.lib in den Projekteigenschaften dem Linker kundgetan, bzw. die obige pragma-Anweisung in neuralnet.cpp eingetragen. Aber entweder interessiert es ihn nicht, oder er bringt gleich hunderte diese Warnungen.
Wo fehlt nun wieder etwas?

Vielen Dank schon mal,
Triple?
C/C++ Forum :: MFC (Visual C++) ::  C-Programm in C++Programm konvertieren????   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.