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.
--
http://mail.python.org/mailman/listinfo/python-list