I use ctypes and I defined this structure to pass parameters
class my_struct(ctypes.Structure):
_fields_ = [ ("buffer", ctypes.c_char * BUFSIZE),
("size", ctypes.c_int )]
Then I call the C function using the following code, but I don't know how to create a string from the structure I created.
class Client():
def __init__(self):
self.__proto = my_struct()
self.client = ctypes.cdll.LoadLibrary(r"I:\bin\client.dll")
def version(self):
ret = self.client.execute(ctypes.byref(self.__proto))
my_string = self.__proto.buffer[:self.__proto.size]
I want to create a python string using the first n bytes of the buffer (the buffer contains NULL characters, but I need to handle this situation and create a string with / 0x00 characters, if necessary). Assignment
my_string = self.__proto.buffer[:self.__proto.size]
does not work bacause truncates the string if 0x00 appears. Any idea is welcome. Thanks in advance.
source
share