[Help] python ctypes to process C pointer!

Korobase boyee118 at gmail.com
Sun Oct 30 10:49:16 EDT 2011


A c code snippet,the c file compiled to a dll file named libxxx.dll:

typedef void* HND;
typedef unsigned char UCHAR;
typedef short int  SWORD;
.......
int Connect(
       HND* hnd,
       UCHAR* ipaddr,
       SWORD port){
......
return 1;
}

then How to handle function Connect using python and ctypes. especially the
parameter hnd?

My python code:

from ctypes import *
xxx = cdll.libxxx
xxx.Connect.restype=c_int
xxx.Connect.argstype=[c_wchar_p,c_wchar_p,c_int]

hnd=c_char_p()

buf=create_string_buffer("127.0.0.1\0")
ipaddr=cast(buf,POINTER(c_char))

xxx.Connect(byref(hnd),ipaddr,8000)

But I always result a error:
WindowsError: exception: access violation writing 0x00000000

How to fix this problem?

Thanks.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20111030/faf55c67/attachment.html>


More information about the Python-list mailing list