Seite 1 von 1

Python und Strings

Verfasst: Dienstag 20. Mai 2008, 13:16
von mulek
Hallo
Ich verwende in meinem Programm einige Funktionen aus einer selbst erstellten dll

Hier liegt mein Problem:
Ich verwende die Funktion OpenSerialPort aus der dll
Diese erfordert aber einen C-String.
Wie würde der folgende Code richtig sein?

string = "Test"
pSerial.OpenSerialport( string)


bzw. kommt diese Fehlermeldung:

def OpenSerialport(*args): return _Hexapod.SerialCommunication_OpenSerialport(*args)
RuntimeError: Unknown Error.

Verfasst: Dienstag 20. Mai 2008, 13:38
von BlackJack
Wie verwendest Du denn die DLL? Ein bisschen mehr Informationen und ein echtes Stück Quelltext mit einer dazu passenden, vollständigen Fehlermeldung wäre nicht schlecht.

Verfasst: Dienstag 20. Mai 2008, 13:51
von mulek
import Hexapod

ComPort = "\\\\.\\Com5"

pSerial = Hexapod.SerialCommunication()
pSerial.OpenSerialport(ComPort)

das ist das einzige was ich dir schreiben kann
lg




in C++ sieht die Deklaration dieser funktion folgendermassen aus:

void SerialCommunication::OpenSerialport(std::string const & CommPort)

Verfasst: Dienstag 20. Mai 2008, 15:05
von BlackJack
Was ist `Hexapod`? Wo kommt das Modul her? Wie sieht der volle Stacktrace aus?

Verfasst: Dienstag 20. Mai 2008, 15:15
von mulek
Mittels SWIG und dem vorhandenen c++ code hab ich mir eine dll erstellt
diese dl beinhaltet alle Funktionen um ansteuern eines Hexapods.

mit import Hexapod rufe ich den verweis auf die dll auf.

Code: Alles auswählen

Traceback (most recent call last):
  File "E:\Mulek\Dokumente\Eclipse\Hexapod\src\main.py", line 19, in <module>
    pSerial.OpenSerialport()  
  File "E:\Mulek\Dokumente\Eclipse\Hexapod\src\Hexapod.py", line 315, in OpenSerialport
    def OpenSerialport(*args): return _Hexapod.SerialCommunication_OpenSerialport(*args)
TypeError: SerialCommunication_OpenSerialport() takes exactly 2 arguments (1 given
Das ist das von SWIG generiere file:
Edit (Leonidas): ausgelagert.

Edit (Leonidas): In Code Tags gesetzt und ausgelagert.