我有函數原型這裏:如何使用ctypes包裝這個具有多個參數的C函數?
extern "C" void __stdcall__declspec(dllexport) ReturnPulse(double*,double*,double*,double*,double*);
我需要寫一些Python來訪問該功能是在DLL中。 我已經加載了DLL,但是 每個double *實際上都指向了一個可變數量的double(一個數組),並且 我很難讓它正常工作。
謝謝大家!
我有函數原型這裏:如何使用ctypes包裝這個具有多個參數的C函數?
extern "C" void __stdcall__declspec(dllexport) ReturnPulse(double*,double*,double*,double*,double*);
我需要寫一些Python來訪問該功能是在DLL中。 我已經加載了DLL,但是 每個double *實際上都指向了一個可變數量的double(一個數組),並且 我很難讓它正常工作。
謝謝大家!
爲了與,比如說,n
雙打的數組:
arr7 = ctypes.c_double * `n`
x = arr7()
,並通過x
到您的函數,其中就是了double*
。或者,如果你需要初始化x
因爲你把它:
x = arr7(i*0.1 for i in xrange(7))
等。您可以循環使用x
,對其進行索引,依此類推。
我還沒有看過ctypes太多,但嘗試使用正確類型的numpy數組。如果這不僅僅是自動工作,它們還有一個ctypes屬性,該屬性應該包含一個指向數據的指針。
太棒了!謝謝! – trayres 2009-09-04 22:42:40
不客氣,如果這個答案被證明是解決您的問題的方法,請記住接受它(使用放棄/拒絕答案的號碼下的複選標記圖標作爲答案),這是基本的SO禮儀。 – 2009-09-05 00:49:40
啊,再次感謝你! – trayres 2009-09-08 22:52:37