Probleme mit Delphi-Import

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
Pegasus0211
Beiträge: 28
Registriert: Mo 18. Sep 2006, 07:48
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Scheeßel

Probleme mit Delphi-Import

Beitrag von Pegasus0211 »

Guten Morgen,

wir sind im Moment dabei, ein größeres Projekt von Delphi zu übernehmen; Syntax ist ok.
In Lazarus hatte ich ein kleines Programm geschrieben, welches eine Logdatei schreibt, eine simple Sache also.
Es funktioniert auch super.

Dieses Programm habe ich als Unit in mein portiertes Projekt eingebunden und schon habe ich folgende Probleme:

Beim Debugging erscheint beim Durchlauf eines simplen writeln-Befehls (es wird ein String geschrieben; mit oder ohne Umlaute - das funktioniert in dem obengenannten Lazarus-Programm auch) die von mir so gehasste SIGSEGV-Meldung und als weiteres Hinweisfenster:

Adresse $0040F689
Prozedur: fpc_write_text_ansistring


Welcher Fehler kann sich bei der Portierung der Delphi-Anwendung eingeschlichen haben?

Danke für Eure Antworten.

Gruß aus Scheeßel

Bernd

Benutzeravatar
theo
Beiträge: 10865
Registriert: Mo 11. Sep 2006, 19:01

Re: Probleme mit Delphi-Import

Beitrag von theo »

Wenn du unter Windows bist, dann hast du wahrscheinlich kein Kommandofenster offen.
Klick in Projekt->Compilereinstellungen->Linken-> "Win32-GUI-Anwendung" weg.

Pegasus0211
Beiträge: 28
Registriert: Mo 18. Sep 2006, 07:48
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Scheeßel

Re: Probleme mit Delphi-Import

Beitrag von Pegasus0211 »

Die von Dir genannte Option war schon disabled; habe auch mal probeweise einen Haken gesetzt; leider keinerlei Änderung.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Probleme mit Delphi-Import

Beitrag von Christian »

Siehst du ein Konsolenfenster wenn du deine Anwendung startest ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

Pegasus0211
Beiträge: 28
Registriert: Mo 18. Sep 2006, 07:48
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Scheeßel

Re: Probleme mit Delphi-Import

Beitrag von Pegasus0211 »

Christian hat geschrieben:Siehst du ein Konsolenfenster wenn du deine Anwendung startest ?
Nein, es ist nichts da.

Benutzeravatar
theo
Beiträge: 10865
Registriert: Mo 11. Sep 2006, 19:01

Re: Probleme mit Delphi-Import

Beitrag von theo »

Und wenn du den Debugger ausschaltest?

Pegasus0211
Beiträge: 28
Registriert: Mo 18. Sep 2006, 07:48
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Scheeßel

Re: Probleme mit Delphi-Import

Beitrag von Pegasus0211 »

theo hat geschrieben:Und wenn du den Debugger ausschaltest?
Es öffnet sich zwar ein Fenster; ich kann dort aber keinerlei Eingaben tätigen.

Mein Chef meinte, ich soll statt mit writeln die Status-Strings per Tfilestream wegschreiben;
selbst, wenn es funzen sollte - das würde aber nicht erklären, warum es im Lazarus-Programm funktioniert und in der eingebundenen Unit nicht.

Und das verursacht mir Unbehagen. :shock:

Benutzeravatar
theo
Beiträge: 10865
Registriert: Mo 11. Sep 2006, 19:01

Re: Probleme mit Delphi-Import

Beitrag von theo »

Ich kapier nicht worum's eigentlich geht.
Ist das ein Konsolenprogramm wo du Eingaben machen willst? Dann starte es doch von der Kommandozeile.
Lazarus eignet sich nicht besonders für das austesten von Konsolenanwendungen. Alternative: FPC-IDE (fp)

Pegasus0211
Beiträge: 28
Registriert: Mo 18. Sep 2006, 07:48
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Scheeßel

Re: Probleme mit Delphi-Import

Beitrag von Pegasus0211 »

theo hat geschrieben:Ich kapier nicht worum's eigentlich geht.
Bei dem Projekt handelt es sich um ein Datenbankprogramm, welches beim Aufruf überprüft, ob die Datenbank (postgres) vorhanden ist und sie bei Bedarf neu erzeugt. Alle vorgenommenen Änderungen werden in einer Logdatei c:\logfile.txt protokolliert und beim Schreiben eben dieser Logdatei gibt es die Probleme.

Anwendungsfenster werden erst später angezeigt; die Anwendung steigt vorher beim Schreiben dieser simplen Logdatei aus.

Pegasus0211
Beiträge: 28
Registriert: Mo 18. Sep 2006, 07:48
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Scheeßel

Re: Probleme mit Delphi-Import

Beitrag von Pegasus0211 »

als weiteren Hinweis:

Bevor das Programm auf irgendwelche Datenbankbefehle aufläuft; bereite ich lediglich einen String mit Datum, Uhrzeit und der Meldung: 'Überprüfe Postgres-Installation' auf und versuche ihn mit writeln in die Logdatei zu schreiben.

Die Logdatei ist zu diesem Zeitpunkt bereits geöffnet, Daten werden angehängt bzw. die Datei wird, sofern nicht vorhanden, erzeugt.

Benutzeravatar
theo
Beiträge: 10865
Registriert: Mo 11. Sep 2006, 19:01

Re: Probleme mit Delphi-Import

Beitrag von theo »

Achso, du willst in eine Datei "writeln". Dann sag das doch gleich, das mit der Konsole war nur in der Annahme, du wolltest auf die Konsole schreiben, was der Normalfall ist bei writeln.

Dann weiss ich es ohne den Code auch nicht.

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Probleme mit Delphi-Import

Beitrag von Christian »

Also writeln funktioniert wenn es richtig benutzt wird ohne Probleme der Weg über TFileStream ist aber moderner und sicher nicht schlechter. Für präzisere Antworten wirst du wohl den Code posten müssen.
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

marcov
Beiträge: 1102
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: Probleme mit Delphi-Import

Beitrag von marcov »

Christian hat geschrieben:Also writeln funktioniert wenn es richtig benutzt wird ohne Probleme der Weg über TFileStream ist aber moderner und sicher nicht schlechter. Für präzisere Antworten wirst du wohl den Code posten müssen.
filestream ist zu dumm. Writeln ist viel kräftiger. Zb:

Code: Alles auswählen

var i : integer;  
     d1,d2 : double;
 
writeln(f,i+5:50,'bla',d1:10:4,d1:10:4);
wie kan man das bequem mit streams machen? Man muss dann mit Format basteln, aber das lest sich nach meiner Einsicht nicht so einfach wie das writeln Äquivalent

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Re: Probleme mit Delphi-Import

Beitrag von Christian »

Naja amrco, das ist n bissl kurzsichtig. Kann ich sowas mit writeln machen ?
myForm.WriteToStream(Stream);
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

marcov
Beiträge: 1102
Registriert: Di 5. Aug 2008, 09:37
OS, Lazarus, FPC: Windows ,Linux,FreeBSD,Dos (L trunk FPC trunk)
CPU-Target: 32/64,PPC(+64), ARM
Wohnort: Eindhoven (Niederlande)

Re: Probleme mit Delphi-Import

Beitrag von marcov »

Christian hat geschrieben:Naja amrco, das ist n bissl kurzsichtig. Kann ich sowas mit writeln machen ?
myForm.WriteToStream(Stream);
Da ist keine Stream Magic der das macht. Also ja, wenn du eine WriteToFile methode schreibst, wurde das funktionieren.

Fast alles was mit Streams kann, kann auch mit normaler IO, wen man ein file treiber (ttextrec oder tfilerec) dafür macht. Logisch natürlich, weil Streams geimplentiert sein mit normaler file I/O.

Den einzigen Unterschied ist Inheritance, also die wirkliche OO Funktionalität. Aber man kan "textrec" oder "filerec" als eine art abstracte Klasse sehen, an dem man keine neue Methoden zufügen kann.

Antworten