Crosscompiling?

Für Fehler in Lazarus, um diese von anderen verifizieren zu lassen.
Antworten
mansch
Beiträge: 13
Registriert: Fr 11. Jun 2010, 17:19

Crosscompiling?

Beitrag von mansch »

Hallo,
ich habe da ein seltsames Problem, für das ich bisher keinen Hinweis gefunden habe. Ich weiß auch nicht, ob ich hier im richtigen Forum bin. Schickt mich ggf. weiter!

Unter Linux habe ich ein Programm erstellt, das ganz gut läuft. Deshalb wollte ich es an einen Windows-Benutzer geben. Also compilierte ich das Projekt unter Windows mit Lazarus, was auch fehlerlos gelang. Das Programm startet und dann passiert es: RangeCheckError! Und das ist die Fehlerstelle.

spielkarten[spielfeld[xx,yy+1]].sichtbar := art;

"spielkarten" ist ein Array von diesem Typ:

TKarte = record
sichtbar : boolean; // Karte oder Rückseite
wert : 0..12; // As, 2 .. 10, Bube, Dame, König
farbe : 0..3; // Karo, Herz, Pik, Kreuz
fname : string; // Bildname
end;

Ich habe mich vergewissert, dass die Compiler-, Linker- und Debuggereinstellungen auf beiden Seiten (Linux und Windows) übereinstimmen. Nur soll das Ziel im einen Fall eine Win32-GUI sein. Auf beiden Seite benutze ich Lazarus 1.0.4.

Was könnte die Ursache sein?
Danke für jeden Hinweis

Manfred

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6209
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Crosscompiling?

Beitrag von af0815 »

Das Problem ist klar gemeldet - Der Index ist aus irgendeinem Grund außerhalb des Bereichs.

Warum erst bei Windows - Überprüfe ob die Einstellungen unter beiden Plattformen gleich sind.

Ach ja, den Fehler solltest du nachgehen, nicht nur den Range Check deaktivieren.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

indianer-frank
Beiträge: 134
Registriert: So 30. Nov 2008, 21:53

Re: Crosscompiling?

Beitrag von indianer-frank »

af0815 hat geschrieben:Das Problem ist klar gemeldet - Der Index ist aus irgendeinem Grund außerhalb des Bereichs.
Die Frage ist nur welcher der drei Indizes: xx, yy+1 oder spielfeld[xx,yy+1]?

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6209
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Crosscompiling?

Beitrag von af0815 »

indianer-frank hat geschrieben:Die Frage ist nur welcher der drei Indizes: xx, yy+1 oder spielfeld[xx,yy+1]?

Klassiker wäre bei yy+1 und spielfeld[xx,yy+1] mit nichtinitialisierten Inhalt. Fällt ohne Rangechecks beim Programmieren nicht unbegingt auf, je nachdem wie die Speicherbelegung ist. Ich suche sowas dann ganz altmodisch mit Kugelschreiber, Block und Debugger.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Antworten