Unit Crt und Windows

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

Unit Crt und Windows

Beitrag von Mathias »

Ist das nur bei mir so, oder funktioniert die Unit Crt nicht mehr richtig mit Windows ?

Unter Win10 in der VB,, wen ich ein Programm welches die Unit Crt verwende starte, Wird das Programm sofort ohne Fehlermeldung beendet, nicht mal das Writeln funktioniert. Dabei spiele es keine Rolle, ob es einen Hacken bei "Win32-GUI-Anwendung(-WG)" hat.

Mit Wine sieht es ein wenig anders aus. Mit Haken bei Win32GUI,, verhält es sich wie in der VB.
Entferne ich den Hacken, scheint es zu funktionieren, ausser, das ESC nicht #27 ausgibt, sondern es kommt der Code #0#1, so wie bei Funktionstasten.

Dabei spielt es keine Rolle, ob ich mit FPC stable oder trunk kompiliere.

Kann das einer von euch nachvollziehen, das es mit Win64 nicht geht ?


Was ich gerade noch probiert habe, ich habe auf Win32/i386 umgestellt, da wird nicht mal die Unit Crt gefunden.Ein Writeln ohne Crt hat eine Ausgabe.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Warf
Beiträge: 2142
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Unit Crt und Windows

Beitrag von Warf »

Ist das nur wenn du das Projekt mit Lazarus kompilierst oder auch wenn du einfach eine simple .pas Datei mit fpc direkt kompilierst?
CrtTest.pas

Code: Alles auswählen

program Test;

{$Mode ObjFpc}{$H+}

uses crt;

begin
  WriteLn('Test');
  ReadLn;
end.
und dann ganz einfach kompilieren

Code: Alles auswählen

fpc.exe CrtTest.pas
.\CrtTest.exe

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

Re: Unit Crt und Windows

Beitrag von Mathias »

Ist das nur wenn du das Projekt mit Lazarus kompilierst oder auch wenn du einfach eine simple .pas Datei mit fpc direkt kompilierst?
CrtTest.pas
Ich habe es mit Lazarus und Cross-Compiler gemacht.

Ab Konsole geht bei mir nicht, das ich kein Lazarus in der VB installiert habe.
Aber ich denke, hier im Forum hat sicher einer ein FPC auf echtem Windows am laufen.

Hier noch mein Testcode:

Code: Alles auswählen

uses
  crt;
var
  quit: boolean = False;
  ch: ansichar;
begin
  TextAttr := $0A;
  WriteLn('drücke eine Taste');
  repeat
    if KeyPressed then begin
      ch := ReadKey;
      WriteLn('Taste: ', byte(ch));
      case ch of
        #27, 'q': begin
          quit := True;
        end;
      end;
    end;
  until quit;
end.   
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

siro
Beiträge: 761
Registriert: Di 23. Aug 2016, 14:25
OS, Lazarus, FPC: Windows 11
CPU-Target: 64Bit
Wohnort: Berlin

Re: Unit Crt und Windows

Beitrag von siro »

Guten Morgen,
bei mir funktioniert das Programm:

Neues Projekt, dann "Einfaches Programm" gewählt und den Code eingefügt.

läuft auf Windows 11 64 Bit

Lazarus 3.0 (rev lazarus_3_0) FPC 3.2.2 x86_64-win64-win32/win64
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...

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

Re: Unit Crt und Windows

Beitrag von Mathias »

bei mir funktioniert das Programm:
Da muss bei mir was kaputt sein. Bei Wine könnte ich es noch begreifen, aber das es in der VB mit Win10 nicht geht. :cry:
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

siro
Beiträge: 761
Registriert: Di 23. Aug 2016, 14:25
OS, Lazarus, FPC: Windows 11
CPU-Target: 64Bit
Wohnort: Berlin

Re: Unit Crt und Windows

Beitrag von siro »

Da ich grad in der alten Firma bin,
habe ich es auf einem Win10 System auch nochmal probiert.
Auch hier läuft es einwandfrei...

Lazarus 2.0.0 r60307 FPC 3.0.4 x86_64-win64-win32/win64
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...

alfware17
Beiträge: 214
Registriert: Di 14. Dez 2010, 23:27

Re: Unit Crt und Windows

Beitrag von alfware17 »

Habe Win10 als Haupt-Betriebssystem und habe das Testprogramm mit FPC 32/64 bit compiliert.
Außer dem Umlaut bei "drücke" lauft alles gut.
In einer VB Win10 auch, allerdings nur die EXE, compiliert habe ich da nicht, kann aber nachholen.

Ich hatte vermutet, dein {$Mode ObjFpc}{$H+} ist das Problem - aber nein Vermutung widerlegt.
Mach mal ein writeln VOR den textattr setzen, vielleicht mag deine Win10 Installation das nicht, oft macht VB Umleitungen/Abfangen zB auch von Sondertasten, sollte hier aber eher nicht zum Tragen kommen.

Wegen bestimmter Probleme mit CRT habe ich mir für das getkey übrigens eine eigene Unit geschrieben - wenn du da Interesse hast

Antworten