Umstieg von Borland auf Visual C++ bereitet Probleme



  • Socket is WinAPI, da du die PSDK-Libs nicht drinnen hattest, kamen daher die Linkererrors!!
    Zu dem anderen: irgendwo is in deiner Struktur noch der Wurm drin. Das lässt sich jetzt schlecht sagen wo genau. Aber evtl. siehst du jetzt auch, warum man globale Variablen nicht so exzessiv nutzen sollte^^
    Wenn der Aufwand nicht zu groß ist mach dir ne Klasse für globale Variablen und alle Variablen darin statisch. Und dann bindest du überall halt die Klasse mit ein.



  • http://msdn.microsoft.com/visualc/learning/vcexpvids/default.aspx
    DA sind Videos, da erste zeigt wie man den PSDK korrekt einbindet.



  • witzisch:-)
    Aber so hab ichs gemacht...:-)
    Ich lass es jetzt und arbeite mit dem Borland weiter, muss ja schließlich was tun, ne:)

    vielen Dank für Deine und Eure Hilfestellung, hab mal wieder was wichtiges dazugelernt.
    Mondmann



  • ojeeeeeee..jetzt hab ich noch ne lib hinzugfügt, jetzt hab ich noch 9 Fehler:

    Fehler	1285	error LNK2005: "int __cdecl FKT_mallocerror(char *,char *,int,int)" (?FKT_mallocerror@@YAHPAD0HH@Z) ist bereits in fkt.obj definiert.	funktionen.obj
    Fehler	1286	error LNK2005: "char * log_buf" (?log_buf@@3PADA) ist bereits in funktionen.obj definiert.	selbstauskunft.obj
    Fehler	1287	error LNK2001: Nicht aufgelöstes externes Symbol ""int (__stdcall* FKT_comm)(char *,int,char *,int,unsigned int,char * *)" (?FKT_comm@@3P6GHPADH0HIPAPAD@ZA)".	class.obj
    Fehler	1288	error LNK2001: Nicht aufgelöstes externes Symbol ""int (__stdcall* FKT_comm)(char *,int,char *,int,unsigned int,char * *)" (?FKT_comm@@3P6GHPADH0HIPAPAD@ZA)".	fkt.obj
    Fehler	1289	error LNK2001: Nicht aufgelöstes externes Symbol ""int (__stdcall* FKT_comm)(char *,int,char *,int,unsigned int,char * *)" (?FKT_comm@@3P6GHPADH0HIPAPAD@ZA)".	funktionen.obj
    Fehler	1290	error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__timeSetEvent@20" in Funktion ""int __cdecl FKT_timer(char *)" (?FKT_timer@@YAHPAD@Z)".	fkt.obj
    Fehler	1291	error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__timeEndPeriod@4" in Funktion "_TerminateExtension@4".	selbstauskunft.obj
    Fehler	1292	error LNK2019: Verweis auf nicht aufgelöstes externes Symbol "__imp__timeKillEvent@4" in Funktion ""void __stdcall callback_timer_back(unsigned int,unsigned int,unsigned long,unsigned long,unsigned long)" (?callback_timer_back@@YGXIIKKK@Z)".	selbstauskunft.obj
    Fehler	1293	fatal error LNK1120: 4 nicht aufgelöste externe Verweise.	E:\vc++\Selbstauskunft.dll\Debug\Selbstauskunft.dll	1
    

    Aber dafür hab ich 1284 Fehler:
    die meisten lauten so:

    Warnung	20	warning C4996: 'strcpy' wurde als veraltet deklariert	j:\httpd\selbstauskunft\src\ausgabe.cpp	600
    Warnung	21	warning C4996: 'sprintf' wurde als veraltet deklariert	j:\httpd\selbstauskunft\src\ausgabe.cpp	618
    Warnung	22	warning C4996: 'strcmpi' wurde als veraltet deklariert	j:\httpd\selbstauskunft\src\ausgabe.cpp	646
    

    usw...

    Was habe ich da Verstellt?

    Mondmann



  • Also langsam habe ich das Gefühl, der VC++Express macht was er will.
    Manchmal kommen o.g. Fehlermeldungen, dann wieder nicht, dann doch wieder...

    Ich denke den Express kann man abschreiben...
    Mondmann



  • Mondmann schrieb:

    Warnung	20	warning C4996: 'strcpy' wurde als veraltet deklariert	j:\httpd\selbstauskunft\src\ausgabe.cpp	600
    Warnung	21	warning C4996: 'sprintf' wurde als veraltet deklariert	j:\httpd\selbstauskunft\src\ausgabe.cpp	618
    Warnung	22	warning C4996: 'strcmpi' wurde als veraltet deklariert	j:\httpd\selbstauskunft\src\ausgabe.cpp	646
    

    usw...

    Was habe ich da Verstellt?

    Mondmann

    Das ist ne Warnung, kein Fehler. Das sind alte C-Funktionen und potentiell unsicher(Bufferoverflow usw.). Dadrauf weist dich der Compiler nur hin.

    Kann das sein, dass du einen sehr alten Borland C++ Builder hast?
    Der neue VC ist halt, wie schon der Vorgänger, sehr standardkonform und lässt nicht alles durchgehen, was mit alten Compilern noch möglich ist. Is eigentlich positiv zu werten.



  • Die Warnungen für deprecated functions kann man auch abschalten. Weiß allerdings nicht wo. Müsste aber sicherlich in den Projekteinstellungen zu finden sein.

    Ansonst: das Problem sitzt meisten nicht im sondern vorm Computer. 😉 Der VC++ 2003 und 2005 sind schon sehr gute Compiler. Die verhalten sich halt so, wie es sein soll und die alten Compiler nicht getan haben. Man muß sich also schon intensiv mit dem ISO-C++ Standard auseinandersetzen, will man nicht immer Errors und Warning sehen. 😉



  • Kann das sein, dass du einen sehr alten Borland C++ Builder hast?

    Ja nicht den Builder, aber der Borland C++ 50.2. Der ist sehr alt, ja.

    Es ist nur mal ein Versuch meinen Quellcode, der weitgehend ANSI und API zum VC++ portieren.
    Da es sich hierbei um die kostenlose Express Version handelt kostets ja nichts.
    Bei mir hats jetzt weitgehend funktioniert, außer dem benannten Fehler, bzw. Warnung der über tausendmal vorkommt.
    Beim Kollegen der das tausendfache an Quelltext (oder noch mehr) hat kann mans vergessen vom Borland auf den VC++ unzusteigen.
    Da ist viel Borlandspeizfisches drin (OWL usw)...

    Man muß sich also schon intensiv mit dem ISO-C++ Standard auseinandersetzen, will man nicht immer Errors und Warning sehen

    ..ja das bekomme ich gerade zu spüren:-))
    Ich habe noch einiges gefunden, was der Borland locker durchgehen ließ, was sich aber als "echter" Fehler herausstellte.

    Danke für deine Hilfe und werd mal gucken was wir da machen.
    Mondmann



  • Artchi schrieb:

    Die Warnungen für deprecated functions kann man auch abschalten. Weiß allerdings nicht wo. Müsste aber sicherlich in den Projekteinstellungen zu finden sein.

    Im Zweifelsfall hilft ein "#pragma warning(disable:4996)" am Anfang der betroffenen Datei.



  • Im Zweifelsfall hilft ein "#pragma warning(disable:4996)" am Anfang der betroffenen Datei.

    ..das war sehr hilfreich, vielen Dank.

    Mondmann



  • Hab mal hier noch ein neues Thema erstellt (Fehlermeldung->Laufzeitbibliothek), vielleich könnt ihr mir da noch helfen.
    Mondmann


Anmelden zum Antworten