Schrift
[thread]11139[/thread]

Frage zu Win32::API::Prototype

Leser: 4


<< >> 5 Einträge, 1 Seite
Mako
 2008-01-15 11:58
#104732 #104732
User since
2007-10-05
31 Artikel
BenutzerIn
[default_avatar]
Hi,
kann mir einer von euch sagen was Win32::API::Prototype eigentlich genau macht?

Win32::API ermöglicht ja den Zugriff auf Windows DLLs wenn ich mich nicht irre.
Aber was macht dann Prototype?

Hab schon auf cpan geschaut aber entweder is mein Englisch einfach zu schlecht oder ich versteh das einfach nicht.

Danke
renee
 2008-01-15 17:02
#104743 #104743
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Das macht im Prinzip das Gleiche wie CPAN:Win32::API, nur dass es Dir eine Funktion in Dein Skript importiert, das so heißt wie die Win32-Funktion. Aber das ist das Gleiche wie Win32::API->Import().

W::A::Prototype bringt Dir also nicht wirklich einen Vorteil...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Gast Gast
 2008-01-15 17:07
#104746 #104746
So wie ich das verstanden habe, erlaubt es dir die jeweiligen Funktionen mittels einem C-Prototyp anzugeben, statt der Schreibweise von Win32::API.
Ausserdem bietet es noch 3 kleine Funktionen zum Handhaben von Strings, die man dann leicht beim Umgang mit den Funktionen der jeweiligen DLL verwenden kann.

MfG Horst
renee
 2008-01-15 17:12
#104749 #104749
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Gast+2008-01-15 16:07:44--
So wie ich das verstanden habe, erlaubt es dir die jeweiligen Funktionen mittels einem C-Prototyp anzugeben, statt der Schreibweise von Win32::API.
Vielleicht habe ich was übersehen, aber die Schreibweise von CPAN:Win32::API::Prototype ist identisch zu Win32::API->Import. Aus den Dokus:

Code (perl): (dl )
1
2
3
4
5
  use Win32::API;
  Win32::API->Import(
      'mydll', 'int sum_integers(int a, int b)',
  );  
  $return = sum_integers(3, 2);


Code (perl): (dl )
1
2
    ApiLink( 'kernel32.dll', 'void GetLocalTime( LPSYSTEM  lpSystemTime )' ) || die;
    GetLocalTime( $lpSystemTime );


Nur dass es einmal Import und einmal ApiLink ist...

Quote
Ausserdem bietet es noch 3 kleine Funktionen zum Handhaben von Strings, die man dann leicht beim Umgang mit den Funktionen der jeweiligen DLL verwenden kann.

MfG Horst

Diese 3 Funktionen sind wohl der "große" Unterschied, wobei ich mich mit Win32::API nicht so gut auskenne, als dass es nicht so etwas auch geben könnte.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
Gast Gast
 2008-01-15 20:53
#104756 #104756
Stimmt, bei Win32::API->Import siehts ziemlich identisch aus...
Ich hab mir auch gerade mal die Quelle angesehen ( von Win32::API::Prototype ), da passiert fast nichts, ApiLink benutzt halt auch nur Win32::API um die Funktion zu finden, ansonsten noch ein eval(), damit die Funktion dann auch benutzt werden kann. ( Finde ich sehr unschön )

Das Modul kann man sich wohl wirklich sparen.

MfG Horst
<< >> 5 Einträge, 1 Seite



View all threads created 2008-01-15 11:58.