On 4 Oct 2006 11:18:16 -0700, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote: > Hi all. > > I just started looking at Python's ctypes lib and I am having trouble > using it for a function. > > For starters, here's my Python code: > > > from ctypes import*; > myStringDLL= cdll.LoadLibrary("myStringDLL.dll"); > > GetMyString = getattr(myStringDLL, > "?GetMyString@@[EMAIL PROTECTED]@[EMAIL PROTECTED]@@[EMAIL > PROTECTED]@2@@std@@@Z") > > strString = create_string_buffer('\000' * 256); > GetMyString.restype = c_int; > GetMyString.argtypes = [c_char_p]; > > bResult = GetMyString (strSerialNumber); > > print (bResult); > print (strSerialNumber); > > #C++ Prototype of the function I want to call: > #bool GetMyString (string& stringParam) ; > > > > > I do not have access to the source code of this function so don't ask > me to try different things in C++. This DLL is working fine. > > The problem that I have is that print (strSerialNumber) does not seem > to print the correct string. What I get is some garbage value of > unprintable characters. Am I using this the correct way? >
This function is expecting a C++ std::string object, not a regular C style string. You'll need a wrapper function, and one which uses the same compiler and STL as the C++ source. > Thanks. > > -- > http://mail.python.org/mailman/listinfo/python-list > -- http://mail.python.org/mailman/listinfo/python-list