User since
2004-08-15
19
Artikel
BenutzerIn
Hi, ich suche nach einer Möglichkeit, wie ich eine DLL in Perl einbinden kann, so daß ich auf die Funktionen von dieser zugreifen kann. Habe gelesen das man mit dem Inline Modul auf die C Umgebung zugreifen kann, habe zwar auch den Code für die DLL, jedoch wäre es einfacher, wenn ich direkt auf die Funktion in der DLL zugreifen könnte, ohne daß es jederzeit kompiliert wird. Kennt ihr eine Möglichkeit ohne auf sstem zugreifen zu müssen?
User since
2003-08-04
5867
Artikel
ModeratorIn
Ich würd mal bei den Win32-Modulen suchen...
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;
use strict; use warnings; Link zu meiner Perlseite
User since
2004-02-19
1750
Artikel
BenutzerIn
sieht ja sehr einfach aus. gibt's sowas auch für unix/linux?
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
User since
2003-08-04
7321
Artikel
ModeratorIn
[quote=Taulmarill,21.09.2005, 14:21]sieht ja sehr einfach aus. gibt's sowas auch für unix/linux?[/quote]
sind dll's nicht immer windows?
oder meinst du mo's oder wie sie heißen?
User since
2004-02-19
1750
Artikel
BenutzerIn
ich meine schon die C librarys die's unter unix gibt. dlls unter unix laden ist eher die aufgabe von wine u.ä.
$_=unpack"B*",~pack"H*",$_ and y&1|0& |#&&print"$_\n"for@.=qw BFA2F7C39139F45F78
0A28104594444504400 0A2F107D54447DE7800 0A2110453444450500 73CF1045138445F4800 0
F3EF2044E3D17DE 8A08A0451412411 F3CF207DF41C79E 820A20451412414 83E93C4513D17D2B
User since
2003-08-04
7321
Artikel
ModeratorIn
hmm...
ich programmiere sehr, sehr selten unter linux...
dort kenn ich nur .lib's => also statische librarys...
dll's sind dynamisch...
gibt's das unter linux auch?
sind das die .mo's die man ab und an bei XS unter perl sieht?
User since
2003-08-04
2145
Artikel
ModeratorIn + EditorIn
Shares Libraries unter Linux haben die Endung .so ("shared object"). Finden sich meist in groesserer Anzahl z.B. in /lib/ und /usr/lib/.
User since
2004-08-15
19
Artikel
BenutzerIn
ICh habe gestern es mit Win32-API versucht und es klappt auch, jetzt muß ich nur noch die DLL umschreiben lassen, da die Funktionsaufrufe anders sind. Aber es klappt damit wunderbar, so daß mir echt wieder neue Welten in Perl eröffnet worden sind. Falls man nur den C Code einbinden will sollte man es mit Inline machen. Um .so einzubinden würde ich Swig empfehlen. Habe gestern mich den ganzen Tag damit beschäftigt. Aber für Windows Dynamic Librarys ist Win32-API zu empfehlen.
Danke für eure Antworten.\n\n
<!--EDIT|Mikmak|1127372158-->
User since
2003-08-04
14371
Artikel
ModeratorIn
@Mikmak: Kannst Du dazu vielleicht einen Artikel in unser
Wiki schreiben? Wäre echt super...