Font
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]6012[/thread]

Zugriff auf DLL's: wie macht man das?

Reader: 1


<< |< 1 2 3 >| >> 22 entries, 3 pages
Rambo
 2004-01-13 12:59
#79095 #79095
User since
2003-08-14
803 articles
BenutzerIn

user image
Hallo,

ich habe ein programm was aus einer *.EXE einer config datei
*.cfg und einer *.dll besteht.
die Exe datei ist so weit ich weis in C++ geschrieben.
Was ganze ist ein kleines host emulations programm welches über ein *.cfg datei auf einen host zugreift.
kann man so was auch in perl machen? ich stelle mir da vor
das ich mit perl auf die dll zugreife und genauso wie mit dem C++ code diese steuere.

hat so was schon mal jemand von euch gemacht?

danke
gruß remo
Strat
 2004-01-13 13:13
#79096 #79096
User since
2003-08-04
5246 articles
ModeratorIn
[Homepage] [default_avatar]
ueber CPAN:Win32::API kannst du Funktionen der .dll aufrufen.
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
havi
 2004-01-14 10:08
#79097 #79097
User since
2003-08-04
2036 articles
BenutzerIn
[Homepage]
user image
Module fuer Perl findest du unter
http://cpan.develooper.com/modules/01modules.index.html
und/oder
http://aspn.activestate.com/ASPN/Modules

Diese links sind auch unter http://links.perl-community.de/ zu finden!!!

Gruss\n\n

<!--EDIT|havi|1074067783-->
Rambo
 2004-01-14 12:56
#79098 #79098
User since
2003-08-14
803 articles
BenutzerIn

user image
Hallo,

gefunden habe ich das alles schon aber ich weis
leider noch nicht wie ich so was anfangen muss :-(

Mal sehen ich habe ein lesbaren JAVA code der
auch auf diese DLL zugreift evtl. kann hier erkennen
was man machen muss

merci schon mal
remo
format_c
 2004-01-14 13:02
#79099 #79099
User since
2003-08-04
1706 articles
HausmeisterIn
[Homepage] [default_avatar]
Entweder so oder du brauchst die Doku der DLL. Wie du welche funktionen wie aufrufen musst damit sie was machen.
Hell::Sehen können wir alle nicht.

Das interessiert mich sowieso: Wo sind solche Funktionen in all den diversen *.dll-Files dokumentiert?

Gruß Alex\n\n

<!--EDIT|format_c|1074078162-->
Rambo
 2004-01-14 13:09
#79100 #79100
User since
2003-08-14
803 articles
BenutzerIn

user image
also ich habe ein teile des Original C++ codes gefunden
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
string ConfigString = "Type=PEP\nName=LHVDUSTO\nRID=0x31\n";
ConfigString += "SID=0x53\nServer=57.20.55.123\n";
ConfigString += "OpenTimeout=10000\n";

VIA::CTerm * UTS = VIA::CreateTerm(ConfigString.c_str());

if (UTS != NULL)
{
if (UTS->Open() == 0)
{
if (UTS->SR("DA") == 0) // SR = Send/Receive
{
printf(UTS->GetBuffer());
}

UTS->Close();
}

VIA::DeleteTerm(UTS);
}

kann mir jemand einen tip geben wie ich das nutzen kann?
steffenw
 2004-01-14 23:38
#79101 #79101
User since
2003-08-15
692 articles
BenutzerIn
[Homepage] [default_avatar]
Ich habe gerade mal nachgelesen, was im CPAN über Win32::API steht. Es geht, aber mit XS geht mehr und schneller, steht jedenfalls dort geschrieben. Aber Ahnung habe ich davon nicht.

Ich weiß, daß mich das mit einer DLL einbinden auch noch ereilen wird. Deswegen interessiert mich das auch.

Wenn man XS nimmt, muß man da noch etwas compilierenen oder ist XS nur eine Beschreibung der Schnittstelle. Gibt es dazu vielleicht ein gutes Beispiel für "ganz doofe".

Oder ist Win32::API für die allgemeinen Standardfälle doch das Optimum?
$SIG{USER} = sub {love 'Perl' or die};
Crian
 2004-01-15 10:50
#79102 #79102
User since
2003-08-04
5866 articles
ModeratorIn
[Homepage]
user image
Ich meine es gibt auch Tools, mit denen man sich dll's genau anehen kann, welche Funktionsaufrufe es gibt und mit welchen Parametern. Aber das ist nur eine ganz dunkle Erinnerung.
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
Rambo
 2004-01-15 11:16
#79103 #79103
User since
2003-08-14
803 articles
BenutzerIn

user image
es kommt wohl drauf an mit was man die DLL geschrieben hat.
ist es nur C dann ist es nicht ganz so schwer, aber bei C++ wird es nicht so einfach.
es gibt ein beitrag bei Heise in dem steht wie man von C++ nach Perl konvertieren kann.
für die DLL die ich benutze habe ich glücklicher weise die doku bekommen und sogar den code davon. was mir aber nix bringt
da ich den code nicht verstehe. :-(

aber mal sehen was man hieraus machen kann :-) noch gebe ich nicht auf

hier mal der Heise Link
http://www.heise.de/ix/artikel/1999/06/134/01.shtml

gruß remo
Strat
 2004-01-15 12:26
#79104 #79104
User since
2003-08-04
5246 articles
ModeratorIn
[Homepage] [default_avatar]
XS ist normalerweise (ebenso wie CPAN:Inline::C) schneller als Win32::API, dafuer aber auch sehr viel schwieriger, weil da C-Kenntnisse alleine nicht reichen, sondern man die XS (bzw. Inline::C)-Eigenheiten kennen muss... und fast immer einen C-Compiler benoetigt, was bei Win32::API nicht der Fall ist\n\n

<!--EDIT|Strat|1074162411-->
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< |< 1 2 3 >| >> 22 entries, 3 pages



View all threads created 2004-01-13 12:59.