Array von Strukturen als Attribut einer Perl 6 NativeCall-Struktur

8

Ich versuche, eine C-Struktur einzukapseln, deren Mitglied ein Array von Zeigern auf Strukturen ist, und ich habe Probleme, herauszufinden, wie es geht.

Nehmen wir an, der C-Code sieht so aus:

%Vor%

Diese Art von Code funktioniert:

%Vor%

aber es ist schrecklich.

A CArray ist hier nutzlos, weil es nur ein Zeiger auf ein Array ist, nicht ein Array von Zeigern; Ich kann etwas wie has A @.a nicht verwenden, weil ein repr('CStruct') nicht mit dieser Art von Attribut umgehen kann.

Irgendein Hinweis?

    
Fernando Santagata 30.05.2017, 15:36
quelle

1 Antwort

1

Ich schreibe einen Beispielcode dafür. Die C-Seite:

%Vor%

Da Rakudo das Abrufen einer Stapelvariablen von C-Seite nicht unterstützt, sollten Sie malloc verwenden, um einen struct bar auf dem Heap zuzuordnen.

Kompilieren Sie dann Code mit gcc, z. B. gcc -shared -fPIC -o libshasa.so xxx.c .

Und das ist Perl6 Seite:

%Vor%

Dies gibt aus:

%Vor%     
araraloren 31.05.2017 10:03
quelle

Tags und Links