Assigining restype and argtypes works! "Thomas Heller" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > mclaugb schrieb: >> I have created a simple windows small_dll.dll exporting a function that >> does >> a computation using C and C++ classes which i wish to call from Python. >> I >> have read lots of ctypes documentation but I still dont quite understand >> how >> to call the function. >> >> As a test, I have written a much simpler mathematical function below to >> try >> to get it to work from Python. >> >> I am trying to call this from python by: >> >>>>from ctypes import * >>>>print cdll.small_dll.adder(c_double(5.343534),c_double(3.4432)) >>>>2223968 >> >> Can someone give me a few tips to get going! > > You should assign the .restype and the .argtypes attributes to your > function. > That gives the the proper result, and you don't have to pack the arguments > into > c_double yourself. > >> The DLL declaration is below. >> >> #include<windows.h> >> #if defined(_MSC_VER) >> #define DLL extern "C" __declspec(dllexport) >> #else >> #define DLL >> #endif >> >> DLL double adder(double a, double b){ >> double c; >> c=a+b; >> return c; >> } >> > > from ctypes import * > adder = cdll.small_dll.adder > adder.restype = c_double > adder.argtypes = c_double, c_double > > print adder(5.343534, 3.4432) > > > Thomas >
-- http://mail.python.org/mailman/listinfo/python-list