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
Crosscompiling?
- 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?
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.
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).
-
- Beiträge: 134
- Registriert: So 30. Nov 2008, 21:53
Re: Crosscompiling?
Die Frage ist nur welcher der drei Indizes: xx, yy+1 oder spielfeld[xx,yy+1]?af0815 hat geschrieben:Das Problem ist klar gemeldet - Der Index ist aus irgendeinem Grund außerhalb des Bereichs.
- 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?
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).