Mit ctypes auf eine Klasse in einer DLL zugreifen?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Hand
User
Beiträge: 65
Registriert: Sonntag 28. Januar 2007, 14:28

Mit ctypes auf eine Klasse in einer DLL zugreifen?

Beitragvon Hand » Donnerstag 15. Mai 2008, 13:31

Hallo, ich möchte folgendes C# Programm zu Python umproggen:

C# Code
[code=C#]
di = new myDll.daveInterface(0, "IF1", 0, 1, 1)
di.setTimeout(5)
[/code]


Ich habe das mal in Python umgeschrieben:

Code: Alles auswählen

myDll = ctypes.windll.LoadLibrary('../dll/libnodave.dll')
di = myDll.daveNewInterface(0, "IF1", 0, 1, 1)
di.setTimeout(5)


Ich bekomme aber immer das int object hat kein Attribut setTimeout.
Wie bekomme ich mit ctypes das richtige Objekt zurück?

Habe bei Google und in allen möglichen Foren leider nichts gefunden.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Donnerstag 15. Mai 2008, 14:28

Was ist das denn für eine DLL? Eine C-DLL oder ein .NET Assembly?
My god, it's full of CARs! | Leonidasvoice vs Modvoice
BlackJack

Beitragvon BlackJack » Donnerstag 15. Mai 2008, 15:22

@Hand: Falls es sich um http://libnodave.sourceforge.net/index.php handelt, dann musst Du die C-DLL verwenden und die Doku lesen. Die Funktion `daveNewInterface()` gibt einen Zeiger auf eine Struktur vom Typ `daveInterface` zurück. Da kann man nicht einfach Methoden drauf aufrufen.

Wer ist online?

Mitglieder in diesem Forum: de_tom