External Exception C0150014

Für Installationen unter Windows
Antworten
jc99
Beiträge: 30
Registriert: Fr 19. Mai 2017, 18:04
OS, Lazarus, FPC: Win10x64, L 1.8rc3, FPC3.0.2
CPU-Target: 64
Wohnort: Nord-Baden
Kontaktdaten:

External Exception C0150014

Beitrag von jc99 »

Kann jemand mit dieser Fehlermeldung was anfangen ?

Sys: Win10_x64, laz1.8rc1+AD+SpartaDE
Habe ToPas von https://sourceforge.net/projects/topas/ ... ecommended geladen.
mit "Delphi-Projekt umwandeln" konvertiert.
und bekomme mittendrin : External Exception C0150014.
Dann nach längerem warten (Laz-Icon in der Taskeiste blinkt wie verückt): "Too many Handles" und Laz stürzt ab.

Beim wiederöffnen des Projekts: Compilieren:
Nochmal: External Exception C0150014.
Nicht wegzuklicken, kommt immer wieder. (Lazarus muß dann per TaskManager von Hand gekillt werden )
siehe Bild:
Dateianhänge
2017-06-05 (1).jpg
OS: ...-Win10 x64
Laz: ...-1.8rc1
https://github.com/joecare99/public
'~| . . /'' . .
,_|oe \_,are

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

Re: External Exception C0150014

Beitrag von Mathias »

Hast du die Fehler fScanLog.pas mal angeguckt ?

Aber das "External Exception C0150014." ist doch etwas komisch.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

wp_xyz
Beiträge: 3205
Registriert: Fr 8. Apr 2011, 09:01

Re: External Exception C0150014

Beitrag von wp_xyz »

Hast du dich auf der Seite etwas näher umgesehen? Es gibt da unter "Code" auch ein svn-Repository, das etwas aktueller ist als die zip-Datei, die direkt angeboten ist. In dem Repository findet sich auch ein Ordner "lazwintopas", der anscheinend alle Lazarus-Anpassungen bereits enthält. Ich habe mal versucht, das zu übersetzen, bin aber immer wieder hängen geblieben. 10 Jahre gehen nicht spurlos vorbei... Vielleicht kommst du weiter. Ansonsten: der Autor skalogryz ist häufig im englischen Forum zu erreichen.

jc99
Beiträge: 30
Registriert: Fr 19. Mai 2017, 18:04
OS, Lazarus, FPC: Win10x64, L 1.8rc3, FPC3.0.2
CPU-Target: 64
Wohnort: Nord-Baden
Kontaktdaten:

Re: External Exception C0150014

Beitrag von jc99 »

wp_xyz hat geschrieben:Hast du dich auf der Seite etwas näher umgesehen? Es gibt da unter "Code" auch ein svn-Repository, das etwas aktueller ist als die zip-Datei, die direkt angeboten ist. In dem Repository findet sich auch ein Ordner "lazwintopas", der anscheinend alle Lazarus-Anpassungen bereits enthält. Ich habe mal versucht, das zu übersetzen, bin aber immer wieder hängen geblieben. 10 Jahre gehen nicht spurlos vorbei... Vielleicht kommst du weiter. Ansonsten: der Autor skalogryz ist häufig im englischen Forum zu erreichen.

... Ups, Du hast recht, da hätte ich mir 'ne Menge Arbeit sparen können. Üblicherweise schau ich nach, ob nicht eine svn/git-Repository angeboten wird....
Es bleibt jedoch der Fehler. (Ist vermulich ausgelöst von nicht vorhandenen Listbox-Eigenschaft) aber ein gutes Programm meldet den Fehler und der Benutzer kann ihn korrigieren. Aber abstürzen oder unbedienbar werden geht gar nicht.
OS: ...-Win10 x64
Laz: ...-1.8rc1
https://github.com/joecare99/public
'~| . . /'' . .
,_|oe \_,are

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

Re: External Exception C0150014

Beitrag von theo »

Nebenbei: Ich weiß nicht, was dein Tool genau macht, aber kennst du das mitgelieferte h2pas und den wizard?

http://wiki.freepascal.org/H2Paswizard
https://www.freepascal.org/tools/h2pas.var
http://wiki.freepascal.org/Creating_bin ... _libraries

jc99
Beiträge: 30
Registriert: Fr 19. Mai 2017, 18:04
OS, Lazarus, FPC: Win10x64, L 1.8rc3, FPC3.0.2
CPU-Target: 64
Wohnort: Nord-Baden
Kontaktdaten:

Re: External Exception C0150014

Beitrag von jc99 »

theo hat geschrieben:Nebenbei: Ich weiß nicht, was dein Tool genau macht, aber kennst du das mitgelieferte h2pas und den wizard?

http://wiki.freepascal.org/H2Paswizard
https://www.freepascal.org/tools/h2pas.var
http://wiki.freepascal.org/Creating_bin ... _libraries

Ich will nicht ein vorhandenes C-Programm benutzen, ich will den C-Quelltext in Pascal umwandeln.
ToPas erledigt das indem es den C-Quelltext parst und tokenifiziert. Und dann... ich glaube der Teil fehlt, oder funktioniert nicht mehr.
Es geht jedenfalls über das reine Suchen-Ersetzen wie bei OpenC2Pas hinaus.
Benchmark sind die ioccc - Programme. Oder nethack ...
OS: ...-Win10 x64
Laz: ...-1.8rc1
https://github.com/joecare99/public
'~| . . /'' . .
,_|oe \_,are

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

Re: External Exception C0150014

Beitrag von theo »

Was war nun genau das Problem?

...mal abgesehen davon, dass solche automatischen Übersetzer immer unbefriedigende Ergebnisse liefern, bzw. immer profunde Kenntnisse in beiden Sprachen voraussetzen.
Im besten Fall kann man damit etwas Zeit sparen, aber "Ahnung" ersetzt das aus meiner Erfahrung nicht.

jc99
Beiträge: 30
Registriert: Fr 19. Mai 2017, 18:04
OS, Lazarus, FPC: Win10x64, L 1.8rc3, FPC3.0.2
CPU-Target: 64
Wohnort: Nord-Baden
Kontaktdaten:

Re: External Exception C0150014

Beitrag von jc99 »

theo hat geschrieben:Was war nun genau das Problem?
Im besten Fall kann man damit etwas Zeit sparen, aber "Ahnung" ersetzt das aus meiner Erfahrung nicht.

Off Topic:
Genau beim ersten größeren Programm hat dann etwas Zeit gespart. Das kommt darauf an wieviel "Ahnung" man in das Umsetzungsprogramm-steckt.
In meiner Firma bin ich der Mann für die unlösbaren Probleme. Ich denke mehrere Jahre in C/C++ und ca 30 Jahre mit Pascal sollte schon ein wenig Ahnung sein.
Zumindest soviel, daß ich C nicht für eine Programmiersprache sondern für eine Krankheit halte siehe IOCCC (sollte Beweiß genug sein)
Wobei:

Code: Alles auswählen

#define P(X)write(1,X,1)
#define C 39
#define E 1024
int M[E]={2},*u=M,N[E],R=22,a[4],l[]={0,-1,C-1,-1},m[]={1,-C,-1,C},*b=N,*d=N,c,e,f,g,i,s;main(){for(M[e=i=C*R-1]=E|8;f|d>=b;){c=M[g=i];i=e;for(s=f=0;s<4; s++)if((e=m[s]+g)>=0&&e<C*R&&l[s]!=e%C&&(c&E)!=(M[e]&E))a[f++]=s;if(f){f=M[e=m[s=a[rand()%f]]+g];f|=E;M[g]=c|1<<s;M[*d++=e]=f|1<<(s+2)%4;}else e=d>b++?b[-1]:e;}P(" ");for(s=C;s--;P(" "))P("_");for(;P("\n"),R--;P("|"))for(e=C;e--;P("_ "+(*u++/8)%2))P("| "+(*u/4)%2);}

geht auch in Pascal/FPC

Code: Alles auswählen

 
Program Unt_iopcc;{$mode delphi}{$H+}{$apptype console}{$define _}Type Z=Integer;Y=0..3;Const X=1024;W=39;V=22;T='|_|  _  |';L:Array[Y]Of Z=(0,-3,W-1,-1);H:Array[Y]Of Z=(1,W,-1,-W);Var M:Array[0..X]Of Z;Function P(Var A:Z):Z;Begin P:=A;Inc(A);End;Procedure Q(A:Z);Begin Write(Copy(T+LineEnding,A+1,2+A Div 8));End;Var U:Z=0;N:Array[0..X]Of Z;A:Array[Y]Of Z;D:Z=0;B:Z=0;C,E,G,I,S:Z;F:Z=0;Begin Randomize;M[0]:=8;I:=W*V-1;E:=I;M[I]:=X+2;While(F<>0)Or(B>=D)Do Begin G:=I;I:=E;C:=M[G];F:=0;For S In L Do Begin E:=H[S And 3]+G;If((E>=0)And(E<W*V)And(S<>(E Mod W))And((C And X)<>(M[E]And X)))Then Begin A[P(F)]:=S;End;End;If(F<>0)Then Begin S:=A[Random(F)]And 3;E:=H[S]+G;M[G]:=C Or 1 Shl S;M[E]:=M[E]Or X Or(1 Shl((S+2)Mod 4));N[P(B)]:=E;End Else Begin If B>=D Then E:=N[P(D)];End;End;Q(6);For G:=1 To W-1 Do Q(4);Q(9);For G:=1 To V Do Begin For E:=1 To W Do Begin Q(M[P(U)]And 6);End;Q(8);End;{$IFDEF _}Readln;{$ENDIF}End.

Viel Spaß !!!

PS: Bei dem Pascal-Program bin ich am überlegen wie ich T noch etwas komprimieren kann.
On Topic:
PPS: Das Problem ist daß man sich auf eine Programmier-Oberfläche verlassen können sollte, ohne sich verlassen zu fühlen. Ich weiß mir in der Regel zu helfen aber es ist trotzdem sehr ärgerlich. Die Ursache für die Exception liegt an einer nicht ganz passenden Form-Definition, damit hat Lazarus schon Probleme jedoch mit Sparta_DockedFormEditor sind sie noch größer. Ich sollte mich damit aber warscheinlich direkt an hnb (den Autor) wenden.
OS: ...-Win10 x64
Laz: ...-1.8rc1
https://github.com/joecare99/public
'~| . . /'' . .
,_|oe \_,are

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

Re: External Exception C0150014

Beitrag von af0815 »

jc99 hat geschrieben:Die Ursache für die Exception liegt an einer nicht ganz passenden Form-Definition, damit hat Lazarus schon Probleme jedoch mit Sparta_DockedFormEditor sind sie noch größer.


ACK. Das Lesen/Parsen von LFM und die Anzeige sind relativ kritische Punkte in Lazarus. Auch wenn der Sync zwischen Code und Darstellung (lfm) gestört wird, gibts es recht rasch sehr 'komische' Fehlermeldungen bzw. komplette Abstürze/Blockaden von Lazarus. Das sind meiner Erfahrung nach die empfindlichsten Teile der IDE.

Andreas
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

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

Re: External Exception C0150014

Beitrag von Mathias »

Viel Spaß !!!

Mir ist dieser Code noch viel zu leserlich. :mrgreen:

Code: Alles auswählen

PROGRAM UNT_IOPCC;{$mode delphi}{$H+}{$apptype console}{$define _}TYPE Z=INTEGER
;Y=0..3;CONST X=1024;W=39;V=22;T='|_|  _  |';L:ARRAY[Y]OF Z=(0,-3,W-1,-1);H:ARRAY
[Y]OF Z=(1,W,-1,-W);VAR M:ARRAY[0..X]OF Z;FUNCTION P(VAR A:Z):Z;BEGIN P:=A;INC(A)
;END;PROCEDURE Q(A:Z);BEGIN WRITE(COPY(T+LINEENDING,A+1,2+A DIV 8));END;VAR U:Z=0
;N:ARRAY[0..X]OF Z;A:ARRAY[Y]OF Z;D:Z=0;B:Z=0;C,E,G,I,S:Z;F:Z=0;BEGIN RANDOMIZE;M
[0]:=8;I:=W*V-1;E:=I;M[I]:=X+2;WHILE(F<>0)OR(B>=D)DO BEGIN G:=I;I:=E;C:=M[G];F:=0
;FOR S IN L DO BEGIN E:=H[S AND 3]+G;IF((E>=0)AND(E<W*V)AND(S<>(E MOD W))AND((C AND
X)<>(M[E]AND X)))THEN BEGIN A[P(F)]:=S;END;END;IF(F<>0)THEN BEGIN S:=A[RANDOM(F)]
AND 3;E:=H[S]+G;M[G]:=C OR 1 SHL S;M[E]:=M[E]OR X OR(1 SHL((S+2)MOD 4));N[P(B)]:=
E;END ELSE BEGIN IF B>=D THEN BEGIN E:=N[P(D)];END;END;END;Q(6);FOR G:=1 TO W-1 DO
BEGIN Q(4);END;Q(9);FOR G:=1 TO V DO BEGIN FOR E:=1 TO W DO BEGIN Q(M[P(U)]AND 6)
;END;Q(8);END;{$IFDEF _}READLN;{$ENDIF}END.\0


In Javascript habe ich so ähnliches schon erlebt, aber ich denke, dort geht es um Geschwindikeitsoptimierung.

Aber du hat recht, in C/C++ findet man viel fast unleserliches.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

jc99
Beiträge: 30
Registriert: Fr 19. Mai 2017, 18:04
OS, Lazarus, FPC: Win10x64, L 1.8rc3, FPC3.0.2
CPU-Target: 64
Wohnort: Nord-Baden
Kontaktdaten:

Re: External Exception C0150014

Beitrag von jc99 »

Mathias hat geschrieben:
Viel Spaß !!!

Mir ist dieser Code noch viel zu leserlich. :mrgreen:

In Javascript habe ich so ähnliches schon erlebt, aber ich denke, dort geht es um Geschwindikeitsoptimierung.

Aber du hat recht, in C/C++ findet man viel fast unleserliches.

Stimmt ... dann gibt's hier the
Next Version:

Code: Alles auswählen

 
    Program Iopcc;{$apptype console}{$define _}Type L=Integer;I=0..3;Const Z=1 Shl 11;U=$13 Shl 1+1;O=U And-U;D=O Shl(O Shl O+O);C=' _|';B=$597B;
    l0:Array[I]Of L=(0,-3,U-O,-O);lQ:Array[I]Of L=(O,U,-O,-U);Var E:Array[0..Z]Of L;Function H(Var Q:L):L;Begin H:=Q;Inc(Q);End;Procedure Q(U:L);Begin
    If U<D Then Write(C[B Shr(H(U)Shl 1) And 3]+C[B Shr(U Shl 1)And 3])Else Write(Copy(C+C+C+LineEnding,U+O,3));End;Var
 
          Hel:l=0;Wor:l=d-D;  P,A,S,CA:L;_fe:l=z-z;_C,oo:l;
 
    ll:Array[0..Z]Of L;l1:Array[I]Of L;Begin Randomize;E[0]:=8;CA:=U*U-O;A:=CA;E[CA]:=Z+2;While(Wor<>0)Or(_fe>=Hel)Do Begin S:=CA;CA:=A;_C:=E[S];Wor:=0;
    For P In l0 Do Begin A:=lQ[P And 3]+S;If((A>=0)And(A<U*U)And(P<>(A Mod U))And((_C And Z)<>(E[A]And Z)))Then Begin l1[H(Wor)]:=P;End;End;If (Wor<>0)Then
    Begin P:=l1[Random(Wor)]And 3;A:=lQ[P]+S;E[S]:=_C Or O Shl P;E[A]:=E [A]Or Z Or(O Shl((P+2)Mod 4));ll[H(_fe)]:=A;End Else Begin If _fe>=Hel Then
    A:=ll [H(Hel)];End;End;Q(6);For S:=O To U-O Do Q(4);Q(D+O);For S:=O To U Do Begin For A :=O To U Do Q(E[H(Oo)]And 6);Q(D);End;{$IFDEF _}Readln;{$ENDIF}End.
 
OS: ...-Win10 x64
Laz: ...-1.8rc1
https://github.com/joecare99/public
'~| . . /'' . .
,_|oe \_,are

Antworten