[SOLVED] LNet(-Components) + Konsolenanwendung = SIGSEGV ?

Für Fragen von Einsteigern und Programmieranfängern...
Antworten
mark332
Beiträge: 202
Registriert: Do 16. Mai 2013, 13:49
OS, Lazarus, FPC: Windows 10 H.P. (x64) / Ubuntu 14.04.X
CPU-Target: AMD Octacore 4.0GHz

[SOLVED] LNet(-Components) + Konsolenanwendung = SIGSEGV ?

Beitrag von mark332 »

Hey Leute,

ich muss derzeit eine Konsolenanwendung schreiben, die einen TCP-Server benötigt.

Weil es dafür ja schon in lNetComponents eine Komponente gibt, dachte ich mir, kann man die ja nutzen...

Leider funktioniert mein Programm nichtmehr, sobald in irgendeiner Unit der Konsolenanwendung "lNetComponents" in der USES-Klausel steht O.o
Im übrigen erstelle ich eine neue Konsolenanwendung in Lazarus und keine GUI-Anwendung, damit man mich nicht missversteht :oops: .

Meldung:

Code: Alles auswählen

 
Project <bla> hat Exception-Klasse >>External SIGSEGV<< ausgelöst.
 
In Datei 'lclwineventer.inc' in Zeile 76
 
Das SIGSEGV meistens eine Zugriffsverletzung ist, weiß ich inzwischen schon ausreichend :mrgreen: aber ich hatte bis jetzt noch nie das Problem, dass diese
Exception (quasi!) durch eine Unit in der USES-Klausel ausgelöst wird und bin deswegen ein wenig überfragt...

Vielleicht hat jemand von euch ja eine Idee, ich persönlich habe ein wenig herumgeschaut und bin zu dem "Schluss" gekommen, dass es mit dem Veränderten Constructor der Komponenten in lNetComponents zu tun haben könnte, da dort der Eventer zu einem LCLEventer geändert wird und in der (in der SIGSEGV-Meldung angezeigten) .inc Datei folgende Prozedur markiert wird:

Code: Alles auswählen

 
constructor TLCLEventer.Create;
begin
  inherited;
  TWin32WidgetSet(WidgetSet).OnAsyncSocketMsg := @HandleEvents; //Diese Zeile wird markiert
end;
 
Ich hoffe ihr könnt mir auf die Sprünge helfen, welchen Fehler ich mache :3


MfG

mark332
Zuletzt geändert von mark332 am So 28. Dez 2014, 23:41, insgesamt 1-mal geändert.
------------------------------------------------------------
Warum gibt es hier eigentlich kein [SPOILER][/SPOILER] ?

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

Re: LNet(-Components) + Konsolenanwendung = SIGSEGV ?

Beitrag von theo »

Ich habe zwar keine Ahnung von INet aber, ich habe mal für dich das FM (Fine Manual) gelesen, und da steht:
The lNet Lazarus packages have been separated by functionality into 2.

* lnetbase.lpk
* lnetvisual.lpk

lnetbase.lpk is used for encapsulation of the basic lnet functionality found in non-visual units. It's a helper package required by lnetvisual, and can be used by anyone who just wants to use non-visual lnet (this not requiring LCL) inside Lazarus without bothering with paths.

lnetvisual.lpk contains the visual integration code with LCL, and thus depends on it. It should be used by people who already use LCL in some way and have atleast on active window/form to put the components on (they need a window to function).
"lNetComponents" ist Teil des lnetvisual.lpk, welches offenbar die LCL benötigt und für die Kommandozeile wahrsch. nicht geeignet ist.

mark332
Beiträge: 202
Registriert: Do 16. Mai 2013, 13:49
OS, Lazarus, FPC: Windows 10 H.P. (x64) / Ubuntu 14.04.X
CPU-Target: AMD Octacore 4.0GHz

Re: LNet(-Components) + Konsolenanwendung = SIGSEGV ?

Beitrag von mark332 »

Ah Danke theo :D , ja klingt einleuchtend :oops:

Ich hatte mich übrigens durch die Website von lNet gelesen, allerdings bin ich dadrin eher verloren gegangen, als über die Nutzung schlau geworden, wo finde ich denn das Fine-Manual ?
(Sofern man es nicht auf der website findet, ich werde da nämlich morgen nochmal suchen)

MfG

mark333

//solved
------------------------------------------------------------
Warum gibt es hier eigentlich kein [SPOILER][/SPOILER] ?

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

Re: [SOLVED] LNet(-Components) + Konsolenanwendung = SIGSEGV

Beitrag von theo »

Das "Fine Manual" war nur angelehnt an den Begriff RTFM.
Dabei habe ich die gepflegtere Ausdrucksweise gewählt. :wink:

Der zitierte Text steht in
lnet-0.6.5.zip/lnet/lazaruspackage/README

Ansonsten kenne ich mich mit lNet nicht aus. Ich benutze Synapse: http://synapse.ararat.cz/doc/help/

mark332
Beiträge: 202
Registriert: Do 16. Mai 2013, 13:49
OS, Lazarus, FPC: Windows 10 H.P. (x64) / Ubuntu 14.04.X
CPU-Target: AMD Octacore 4.0GHz

Re: [SOLVED] LNet(-Components) + Konsolenanwendung = SIGSEGV

Beitrag von mark332 »

theo hat geschrieben:Das "Fine Manual" war nur angelehnt an den Begriff RTFM.
Dabei habe ich die gepflegtere Ausdrucksweise gewählt. :wink:

Der zitierte Text steht in
lnet-0.6.5.zip/lnet/lazaruspackage/README

Ansonsten kenne ich mich mit lNet nicht aus. Ich benutze Synapse: http://synapse.ararat.cz/doc/help/
Oh, ich wusste garnicht, dass Synapse auch eine TCP/UDP - Unit hat :mrgreen:

Ich werde mir die auf jeden Fall auch nochmal anschauen,

danke :) ,

MfG

mark332
------------------------------------------------------------
Warum gibt es hier eigentlich kein [SPOILER][/SPOILER] ?

Antworten