ctypes und LPCSTR

Python in C/C++ embedden, C-Module, ctypes, Cython, SWIG, SIP etc sind hier richtig.
derbernd
User
Beiträge: 13
Registriert: Montag 6. Oktober 2014, 08:19

ctypes und LPCSTR

Beitragvon derbernd » Donnerstag 18. August 2016, 14:18

Hallo,
ich versuche das erste mal eine externe Library in python einzubinden. Die meisten Funktionen der Bibliothek funktinieren, leider bekomme ich die nachfolgende Funktion nicht zu laufen.

Die Definition in der header-Daei ist:
  1. BOOL TML_EXPORT TS_GetLongVariable(LPCSTR pszName, long* value);
  2.  
  3. /*******************************************************************************************
  4.  Function: Reads a long integer type variable from the drive.
  5.  Input arguments:
  6.     pszName:    Name of the variable
  7.  Output arguments:
  8.     value:  Variable value
  9.     return:     TRUE if no error; FALSE if error
  10. *******************************************************************************************/


in python versuche ich die Funktion mittels:
  1. pos = c_long(0)
  2. TS_GetLongVariable("APOS",byref(pos))


aufzurufen. Ich bekomme aber keinen Wert zurück, sondern False

Was muss ich ändern?

Danke
Zuletzt geändert von Anonymous am Donnerstag 18. August 2016, 15:38, insgesamt 1-mal geändert.
Grund: Quelltext in Codebox-Tags gesetzt.
BlackJack

Re: ctypes und LPCSTR

Beitragvon BlackJack » Donnerstag 18. August 2016, 15:43

@derbernd: Python 2 oder 3? Und wie hast Du `TS_GetLongVariable()` in Python mit `ctypes` ”deklariert”?
derbernd
User
Beiträge: 13
Registriert: Montag 6. Oktober 2014, 08:19

Re: ctypes und LPCSTR

Beitragvon derbernd » Freitag 19. August 2016, 06:14

Ich verwende python 3.

Die Funktion `TS_GetLongVariable()` ist extern in einer c-Library deklariert und mit:

Code: Alles auswählen

lib =  ctypes.cdll.LoadLibrary("TML_lib.dll")

eingebunden.

VG
Sirius3
User
Beiträge: 7069
Registriert: Sonntag 21. Oktober 2012, 17:20

Re: ctypes und LPCSTR

Beitragvon Sirius3 » Freitag 19. August 2016, 07:07

@derbernd: Du gibst also die Typen der Argumente nirgends an und hoffst, dass ctypes alles richtig macht. In diesem Fall wohl eher nicht, da Du einen Unicode-String an eine Funktion übergibst die einen Bytestring erwartet.
derbernd
User
Beiträge: 13
Registriert: Montag 6. Oktober 2014, 08:19

Re: ctypes und LPCSTR

Beitragvon derbernd » Freitag 19. August 2016, 07:43

danke für den kurzen aber richtigen Hinweis. Die restlichen String innerhalb meines Programms übergebe ich als Bytestring, nur hier nicht. Wie dämlich von mir :oops:

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder