Thread DLL über Perls XS aufrufen (3 answers)
Opened by Dimpflmoser at 2011-06-30 16:11

murphy
 2011-07-24 17:19
#150709 #150709
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
XSub-Code ist durchaus als Klebstoffschicht zwischen Perl und externen Bibliotheken gedacht: Jede Bibliotheksfunktion, die ein C-Programm aufrufen könnte, kann natürlich auch von einer XSub aus aufgerufen werden, denn im wesentlichen sind die XSubs ja ebenfalls in C geschrieben.

Wenn neben einer Bibliothek auch Header für C vorliegen, muss man also nur diese im XSub-Code einbinden, das Buildsystem der Perlerweiterung anweisen, mit der Bibliothek zu linken und schon kann der XSub-Code die Bibliothek verwenden.

Wenn man keinen C-Header für die Bibliothek hat sondern tatsächlich nur eine API-Beschreibung, muss man anhand dieser Beschreibung eben selbst die Funktionsdeklarationen in den XSub-Code oder einen eigenen Header schreiben.

Ich persönlich finde, dass XSub-Code ziemlich hässlich und relativ umständlich zu schreiben ist und würde empfehlen zum Erstellen eines Bindings für eine externe C-Bibliothek entweder ein Werkzeug wie SWIG zu nutzen oder CPAN:Inline::C zu verwenden.
When C++ is your hammer, every problem looks like your thumb.

View full thread DLL über Perls XS aufrufen