ctypes pointer
Nitin Bhargava
nitinbhargava74 at hotmail.com
Mon Feb 6 21:12:08 EST 2012
Hi,
I wish to call a function in c++ dll which returns a unicode array from python.
extern "c"
{
__declspec(dllexport) int test(wchar_t** ppText)
{
*ppText = new wchar_t[30];
wcscpy(*ppText, L"this is a test");
return 0;
}
__declspec(dllexport) int FreeString(wchar_t** ppText)
{
delete [] *ppText;
return 0;
}
}
In python I'm doing this
import ctypes
dll = ctypes.cdll.LoadLibrary(r"x")
func = dll.test
func.argtypes = [ ctypes.POINTER(ctypes.c_wchar_p)]
funcDel = dll.FreeString
funcDel.argtypes = [ctypes.POINTER(ctypes.c_wchar_p)]
a = ctypes.c_wchar_p('')
z = ctypes.pointer(a)
n= func(z)
print a /* displays "this is a test" */
/* is this correct way to return charater array */
/* will memory allocated in c++ function be freed by python */
/* or should I call */
n = funcDel(z)
thanks,
Nitin.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20120207/ae175477/attachment.html>
More information about the Python-list
mailing list