Problem xp - win7

Für Fragen rund um die Ide und zum Debugger
Marc
Lazarusforum e. V.
Beiträge: 208
Registriert: Fr 11. Nov 2016, 14:09
OS, Lazarus, FPC: Linux Mint 20 (WinXP VBox)
CPU-Target: 64Bit
Wohnort: Schweiz

Problem xp - win7

Beitrag von Marc »

Habe einen Code der sollte einen Record von der Harddisk lesen.
Interessanterweise funktioniert er bestens unter win7 (d.h. ich kann den Record lesen), exakt derselbe Code in XP kompiliert gibt zwar keine Fehlermeldung liest aber nur einen 'leeren' Record wie es scheint.
Da muss irgendwie etwas prinzipiell nicht stimmen. Aber ich komm nicht drauf.
Hat jemand vieleicht einen guten Tipp?
Good code comes from experience, experience comes from bad code.

Mathias
Beiträge: 6162
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Problem xp - win7

Beitrag von Mathias »

Wie liest du den Record ein ?
Ein bisschen Code wäre schön. :wink:

Kommt eine Fehlermeldung beim lesen ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Marc
Lazarusforum e. V.
Beiträge: 208
Registriert: Fr 11. Nov 2016, 14:09
OS, Lazarus, FPC: Linux Mint 20 (WinXP VBox)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Problem xp - win7

Beitrag von Marc »

Danke für die schnelle Antwort.
Es gibt Ueberhaupt keine Fehlermeldung. Es wird statt Nummen einfach 0 gelesen.
Der Code geht so:

AssignFile(JustOneCylDatei,selectedFileName);
LogEvent('Read cylinder : '+selectedFileName,0);
{$I-}
Reset(JustOneCylDatei); {open file to read}
Read(JustOneCylDatei, JustOneCylData); {read the data}
CloseFile(JustOneCylDatei); {close the file}
{$I+}

Habe das XP und das Win7 gleichzeitig auf Linux Mint in VM's am laufen. Einig der Unterschied Win7 hat 4GB Ram, XP hat nur 2GB. Die Datei hat 160MB.
Ich meine der Speicher sollte kein Problem sein.
Vieleicht sollte ich das lazarus neu installieren?
Good code comes from experience, experience comes from bad code.

Marc
Lazarusforum e. V.
Beiträge: 208
Registriert: Fr 11. Nov 2016, 14:09
OS, Lazarus, FPC: Linux Mint 20 (WinXP VBox)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Problem xp - win7

Beitrag von Marc »

Irgendas in meinem Code scheint verbockt.
Ich kriege die Fehlermeldung 'error while compiling resources -> compile with -vd for more details. Check for duplicates.
Good code comes from experience, experience comes from bad code.

Marc
Lazarusforum e. V.
Beiträge: 208
Registriert: Fr 11. Nov 2016, 14:09
OS, Lazarus, FPC: Linux Mint 20 (WinXP VBox)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Problem xp - win7

Beitrag von Marc »

Es bleibt mir hier stehen.
Die lpr datei :

program ti_0_01;

{$mode objfpc}{$H+}

uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Interfaces, // this includes the LCL widgetset
Forms, Unit1;

// {$R *.res}

begin
RequireDerivedFormResource:=True;
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.

Ich blicke es gerade nicht mehr.
Good code comes from experience, experience comes from bad code.

compmgmt
Beiträge: 351
Registriert: Mi 25. Nov 2015, 17:06
OS, Lazarus, FPC: Win 10 Pro | Lazarus 1.8.2 | FPC 3.0.4
CPU-Target: i386 + x86_64
Wohnort: in der Nähe von Stuttgart
Kontaktdaten:

Re: Problem xp - win7

Beitrag von compmgmt »

Marc hat geschrieben:Irgendas in meinem Code scheint verbockt.
Ich kriege die Fehlermeldung 'error while compiling resources -> compile with -vd for more details. Check for duplicates.

Wie es schon da steht, gab es ein Problem beim kompilieren der Ressourcen. Hast du vielleicht irgendwelche Ressourcen unter Win7 eingebunden, die du nicht mit auf das XP System kopiert hast?

Code: Alles auswählen

InitiateSystemShutdownExA(nil, nil, 0, true, false, $0005000F);
Have fun with this snippet ;)

braunbär
Beiträge: 369
Registriert: Do 8. Jun 2017, 18:21
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10, FPC 3.2.0
CPU-Target: 64Bit
Wohnort: Wien

Re: Problem xp - win7

Beitrag von braunbär »

Poste doch das komplette Projekt. Irgend ein File fehlt vermutlich in deiner XP-Variante, oder es ist beschädigt.
"error while compiling resources" deutet auf ein Problem mit der Formulardatei.

Michl
Beiträge: 2505
Registriert: Di 19. Jun 2012, 12:54

Re: Problem xp - win7

Beitrag von Michl »

Naja, eine verdächtige Zeile ist doch:

Code: Alles auswählen

// {$R *.res}

Wozu hast du denn mit der Auskommentierung, die Einbindung des Projekt-Resource-Files unterbunden?

Code: Alles auswählen

type
  TLiveSelection = (lsMoney, lsChilds, lsTime);
  TLive = Array[0..1] of TLiveSelection; 

braunbär
Beiträge: 369
Registriert: Do 8. Jun 2017, 18:21
OS, Lazarus, FPC: Windows 10 64bit, Lazarus 2.0.10, FPC 3.2.0
CPU-Target: 64Bit
Wohnort: Wien

Re: Problem xp - win7

Beitrag von braunbär »

Das hat er vermutlich erst gemacht, nachdem schon irgend welche Probleme aufgetreten sind - oder?
Dass das Programm so nicht funktionieren kann, weil dann die einzubindenden Ressourcen fehlen, sollte aber schon klar sein.

Mathias
Beiträge: 6162
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Problem xp - win7

Beitrag von Mathias »

@Marc

Könntest du in Zukunft bitte denen Code Tagen ?

Code: Alles auswählen

program ti_0_01;
 
{$mode objfpc}{$H+}
 
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
{$ENDIF}{$ENDIF}
  Interfaces, // this includes the LCL widgetset
  Forms, Unit1;
 
// {$R *.res}
 
begin
  RequireDerivedFormResource:=True;
  Application.Initialize;
  Application.CreateForm(TForm1, Form1);
  Application.Run;
end.

So was ist doch viel leserlicher. :wink:
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Marc
Lazarusforum e. V.
Beiträge: 208
Registriert: Fr 11. Nov 2016, 14:09
OS, Lazarus, FPC: Linux Mint 20 (WinXP VBox)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Problem xp - win7

Beitrag von Marc »

Danke für die vielen Antworten.

Das ganze Projekt ist schon etwas grösser.
Es gibt eine Hauptanwendung die schreib ich in Win7. Gleichzeitig brauch ich aber noch ein Abfrage 'Terminal' das die Daten von der Hauptanwendung lesen kann, dieses schreibe ich in win XP.

Erst hatte ich das Problem das ich einfach die Daten nicht lesen konnte. Das Compiler Problem habe ich gekriegt als ich eine neue form erstellen wollte.
Das // {$R *.res} habe ich dann mal gemacht als ich die neue form wieder entfernen wollte vom Projekt.

Ich mache jetzt das Terminal program in xp nochmal komplett neu, bis ich sehe woran es liegt.

Das eigentliche programmieren scheint mir der einfachste Teil zu sein. Aber die ganzen informationen über Compilerschalter, Fehlermeldungen, Ressourcen finden sich ja schwer im Netz.

Meine hier : https://www.freepascal.org/docs-html/user/userse33.html
steht ja was, aber zu meinem ' compile with -vd' Problem steht nichts.

Gibt es da ev. ein vernünftiges Buch dazu? Lazarus für Dummies oder sowas?
Taugt dieses was ? http://s298817230.online.de/homepages/o ... h/laz1.php
Good code comes from experience, experience comes from bad code.

Mathias
Beiträge: 6162
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Problem xp - win7

Beitrag von Mathias »

Aber die ganzen informationen über Compilerschalter, Fehlermeldungen, Ressourcen finden sich ja schwer im Netz.

Mit Ressource und Compilerschaltern muss man sehr selten kämpfen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Marc
Lazarusforum e. V.
Beiträge: 208
Registriert: Fr 11. Nov 2016, 14:09
OS, Lazarus, FPC: Linux Mint 20 (WinXP VBox)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Problem xp - win7

Beitrag von Marc »

Kleiner Nachtrag.

Ich habe den Code nochmal zusammengebastelt.
Meine Compilerschalter Fehlermeldung wurde duch dieses : {$R *.lfm} ausgelöst.
Keine Ahnung was das macht. Muss ich irgendwo gefunden haben.
Ohne das ist es gut.

Aber mein XP läuft immer noch nicht richtig mit Lazarus.
Habs komplett deinstalliert. c:/lazarus von Hand nachträglich gelöscht (da waren noch zwei Ordner drin) und version 1.6.4 nochmal herunter geladen und installiert.
Einen Fehler im Code schliesse ich aus, da der gleich Code in Win7 tadellos funktioniert.
Ich vermute mal das der Record den ich lesen will irgend eine Grenze in win xp überschreitet.
Ich werde da gelegentlich mal weiterforschen, aber ich mache jetzt einfach mal mit win7 weiter.
Kommt Zeit kommt Rat. :-)
Good code comes from experience, experience comes from bad code.

Mathias
Beiträge: 6162
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Problem xp - win7

Beitrag von Mathias »

Ich vermute mal das der Record den ich lesen will irgend eine Grenze in win xp überschreitet.

Könnte es sein, das du unter XP deinen Code 32Bit und in Win7 64Bit kompilierst ?

Kannst du mal die Deklaration deines Recordes zeigen ?

Noch ein Tip verwende für sowas,

Code: Alles auswählen

Reset(JustOneCylDatei); 

ein vorangestelltes "f".

Code: Alles auswählen

Reset(fJustOneCylDatei); 

Bei einem f sieht man sofort, das es sich um einen FileHandler handelt. :wink:
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Marc
Lazarusforum e. V.
Beiträge: 208
Registriert: Fr 11. Nov 2016, 14:09
OS, Lazarus, FPC: Linux Mint 20 (WinXP VBox)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Problem xp - win7

Beitrag von Marc »

Hallo Mathias.
Danke für den Tipp mit dem f.
Ich gehe mal davon aus da xp mit 32 bit compiliert.
Win7 wird es mit 64bit tun?
Habe soweit nichts spezielles eingestellt.
Was wohl das Problem in meinem Record ist eine Byte Array. 5000 mal 32000 Bytes.

Code: Alles auswählen

CylDat : array[1..5000,1..32000] of Byte;

Das sind 160MB, und das könnte zuviel sein?
Good code comes from experience, experience comes from bad code.

Antworten