Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Beim Web-Server Aufruf: Segmentation Fault (11) (https://www.delphipraxis.net/180412-beim-web-server-aufruf-segmentation-fault-11-a.html)

GS1200 19. Mai 2014 06:35

Beim Web-Server Aufruf: Segmentation Fault (11)
 
Hallo zusammen,

ich verwende Delphi XE5 Update 2 und erstelle gerade ein APP für Android. Wenn ich nun einen WEB.Service aufrufe klappt es grundsätzlich einwandfrei, solang ich hier nur "einfache" Werte zurück bekommen. Gebe ich eine Struktur oder ein Array aus dieser Struktur zurück, bekomme ich die Fehlermeldung "Segmentation Fault (11)". Ich arbeite mit XE5 in einer VMWare unter W7 64 Bit. Ich verwende das Android SDK 22.6.3 32 bit. Das App führe ich aber direkt auf einem Tablet lenovo Android 4.2.2 (Die Emulatoren laufen nicht unter VMWare)

Ein Testprogramm unter VCL verwendet den gleichen Code und dabei läuft alles wie erwartet. Die Struktur, welche übergeben wird, wird als class(TRemotable) definiert und enthält Strings und Integer.

Delphi-Quellcode:
var myWS : IportierVision;
    Rio : THTTPRIO;
    emp1 : TPersonalRem;
    einz : TPersonalRem;

begin

 // Hier steht noch diverser Code...

 einz := TPersonalRem.Create;

 einz := (Rio as IportierVision).SuchePerson(emp1); // Hier kommt der Fehler "Segmentation Fault (11)"

 // Hier steht noch diverser Code...

end;
Kennt jemand das Problem oder vielleicht sogar eine Lösung?


Danke für jeden Tipp.

Gruß

Axel

Klaus01 19. Mai 2014 07:55

AW: Beim Web-Server Aufruf: Segmentation Fault (11)
 
Guten Morgen,

zwei Anmerkungen zu Deinem Code.

a) Du erzeugst einz und überschreibst die Instanz gleiche wieder (einz := (Rio as IportierVision).SuchePerson(emp1); )
b) emp1 wird wo erzeugt?

Grüße
Klaus

GS1200 19. Mai 2014 19:51

AW: Beim Web-Server Aufruf: Segmentation Fault (11)
 
Hallo Klaus,

danke für die Antwort.

zu a) In der Tat, die erste Zeile wird nicht benötigt. Hatte ich vergessen auszukommentieren.
zu b) emp1 wird im Bereich // Hier steht noch diverser Code... erzeugt und entspricht der Struktur dem TPersonalRem

Da wird der Name mit dem Suchbegriff gefüllt. emp1.Name_1 := 'Bar';


Der Aufruf: (Rio as IportierVision).IfOnline gibt als Boolean True oder False zurück. Der läuft einwandfrei.

Nur mit der Struktur gibt es den Fehler.

Gruß

Axel


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz