I'm having an issue with ctypes. I think my type conversion is correct and the error isn't making sense to me. Error on line " arg - ct.c_char_p(logfilepath) " TypeError: bytes or integer address expected instead of str instance
I tried in both python 3.5 and 3.4.
function i'm calling:
stream_initialize('stream_log.txt')
Stream_initialize code"
def stream_initialize(logfilepath):
f = shim.stream_initialize
arg = ct.c_char_p(logfilepath)
result = f(arg)
if result:
print(find_shim_error(result))
c_char_p
takes bytes
object so you have to convert your string
to bytes
first:
ct.c_char_p(logfilepath.encode('utf-8'))
Another solution is using the c_wchar_p
type which takes a string
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With