nordi80 Geschrieben 18. Mai 2004 Geschrieben 18. Mai 2004 Hi! Leider programmiere ich nicht mit C++, aber dennoch muss ich einen alten Source einer DLL etwas anpassen. Die Anpassungen sind erledigt, allerdings erhalte ich beim Kompilieren einige Fehler, da ich nun .net verwende und die dll ursprünglich mit einer uralten Version erstellt wurde. Folgender Code bereitet mir Probleme: long __pascal __saveregs __export GetDHCHECK() Hier wird mir z.B. gesagt, dass man nun für __pascal den Begriff WINAPI verwenden soll und für __export die Anweisung __declspec(dllexport). Leider bekomme ich das trotzdem nicht hin und habe die Fehler C2144, C4229 und C4518. Vielleicht weiß jemand wie die oben genannte Anwesung richtig zu schreiben ist, damit sie in .net keine Fehler verursacht. Wäre echt super wenn mir da jemand helfen könnte. Danke! Zitieren
Klotzkopp Geschrieben 18. Mai 2004 Geschrieben 18. Mai 2004 Hallo nordi80! 1. Der Betreff ist wenig aussagekräftig. So ziemlich jeder, der hier ein Thema erstellt, sucht Hilfe. Bitte beim nächsten Mal drauf achten, dass der Betreff dein Problem besser beschreibt. 2. long __pascal __saveregs __export GetDHCHECK() Hier wird mir z.B. gesagt, dass man nun für __pascal den Begriff WINAPI verwenden soll und für __export die Anweisung __declspec(dllexport). Hier wäre es gut gewesen, wenn du nicht den ursprünglichen (unangepassten) Code gezeigt hättest, sondern den, der die Fehler verursacht. 3. Leider bekomme ich das trotzdem nicht hin und habe die Fehler C2144, C4229 und C4518.Hier wird niemand Fehler an der Nummer erkennen können. Du hast die kompletten Fehlermeldungen vorliegen, warum sollen wir sie umständlich über die Nummer raussuchen? Also bitte immer die vollständige Fehlermeldung angeben. Zitieren
nordi80 Geschrieben 18. Mai 2004 Autor Geschrieben 18. Mai 2004 Hier der angepasste CODE: long WINAPI __saveregs __declspec(dllexport) GetHDSerial() Hier Fehler-/Warnmeldung: error C2144: Syntaxfehler : 'int' sollte auf ';' folgen warning C4229: Anachronismus verwendet : Modifizierer der Daten werden ignoriert Werde mir nächstes Mal ein genaueres Thema überlegen, damit niemand einen Klick zu viel tätigen muss. Gruß Zitieren
nordi80 Geschrieben 18. Mai 2004 Autor Geschrieben 18. Mai 2004 .... oder vielleicht nicht reinschaut. Ich hoffe es hat trotzdem jemand einen Rat :-)) Gruß Zitieren
Klotzkopp Geschrieben 18. Mai 2004 Geschrieben 18. Mai 2004 error C2144: Syntaxfehler : 'int' sollte auf ';' folgen Wird dieser Fehler auch wirklich in der Zeile erzeugt, die du uns da zeigst? Ich würde erwarten, dass da zumindest 'int' auch irgendwo drin steht. Falls nicht, zeig bitte mal ein wenig Code drumherum. Zitieren
nordi80 Geschrieben 24. Mai 2004 Autor Geschrieben 24. Mai 2004 Ja der Fehler tritt in genau dieser Zeile auf In der Nähe steht auch nichts mit int. Hier mal einen Auszug eines anderen Teils mit den gleichen Fehlermeldungen: Das auskommentierte ist die alte Syntax und darunter meine bereits etwas an den neuen Stand angepasste Version. //long __pascal __saveregs __export GetHDSerial() long WINAPI __saveregs __declspec(dllexport) GetHDSerial() { unsigned long Serial; GetVolumeInformation("c:\\", NULL, NULL, &Serial, NULL, NULL, NULL, NULL); return Serial; } Zitieren
nordi80 Geschrieben 24. Mai 2004 Autor Geschrieben 24. Mai 2004 Super, jetzt gehts zumindest ohne Fehler. Habe nur noch jetzt eine neue Warnung: warning C4518: '__declspec(dllexport ) ' : Unerwartete® Speicherklassen- oder Typspezifizierer; wird ignoriert. Aber die Erstellung geht jetzt schonmal. Kann man die DLL noch irgendwie verschlüsseln, oder ist das automatisch schon so bei C++? Ich kenne es so von Foxpro, da muss man nämlich einstellen ob die Kompilierung verschlüsselt oder unverschlüsselt stattfinden soll. Zitieren
Empfohlene Beiträge
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.