Methodendefinition ungleich Deklaration???

Für Fragen rund um die Ide und zum Debugger
fpGUIcoder
Beiträge: 199
Registriert: Di 20. Okt 2015, 23:13

Re: Methodendefinition ungleich Deklaration???

Beitrag von fpGUIcoder »

Mathias hat geschrieben:Das würde ich wen möglich umgehen, da ShortString für alte Pascal-Strings reserviert ist.

Bei einer neuen Bibliothek ja, aber hier wollte ich eine alte Bibliothek übersetzen. MOS (Master Operating System) von 2 französischen Autoren, die das seit Version 3.7 OpenSource gestellt haben.

Wenn ich dort auf Huge Strings umstelle, gibt es andere Inkompatibilitäten. Geplant war da mal, diese lib auf Windows umzustellen. Ich will sie aber so haben dass sie sowohl für DOS als auch für Windows geeignet ist.

fpGUIcoder
Beiträge: 199
Registriert: Di 20. Okt 2015, 23:13

Re: Methodendefinition ungleich Deklaration???

Beitrag von fpGUIcoder »

Mathias hat geschrieben:Das würde ich wen möglich umgehen, da ShortString für alte Pascal-Strings reserviert ist.

Bei einer neuen Bibliothek ja, aber hier wollte ich eine alte Bibliothek übersetzen. MOS (Master Operating System) von 2 französischen Autoren, die das seit Version 3.7 OpenSource gestellt haben.

Wenn ich dort auf Huge Strings umstelle, gibt es andere Inkompatibilitäten. Geplant war da mal, diese lib auf Windows umzustellen. Ich will sie aber so haben dass sie sowohl für DOS als auch für Windows geeignet ist.

Achtzig
Beiträge: 90
Registriert: Mo 15. Okt 2007, 13:09
OS, Lazarus, FPC: Debian
CPU-Target: xxBit

Re: Methodendefinition ungleich Deklaration???

Beitrag von Achtzig »

shokwave hat geschrieben:
marcov hat geschrieben:longint oder shortstring redeclariert ?


Ich glaube Marco meinte so etwas wie das hier, in Zeile 569 der MosConfig.pas


Nein, daß meint marcov wohl eher nicht.

Wenn im Uses-Abschnitt der Implementation eine Unit eingebunden wird, die einen Typ aus einer Unit, die im Interface-Abschnitt eingebunden wird, neu deklariert, kommt es zu diesem Fehler. Interface und Implementation gehen dann von unterschiedlichen Typen aus.

Wenn Du Units im Implementation-Bereich einbindest, könntest Du die mal testhalber in den Interface-Bereich verschieben, solange es keine zirkularen Referenzen gibt.

... Oder einfach mit der Maus zusammen mit CTRL auf die Typenbezeichner klicken und gucken, wo man da landet. Idealerweise landen Interface und Implementation am gleichen Ort. Ansonsten hast Du den Fehler gefunden.

Antworten