2009-09-04 5 views
0

私はここで、関数のプロトタイプを持っている:複数の引数を持つこのC関数をctypesでラップするにはどうすればよいですか?

extern "C" void __stdcall__declspec(dllexport) ReturnPulse(double*,double*,double*,double*,double*); 

私はDLLであるこの機能にアクセスするには、いくつかのpythonを記述する必要があります。 私はDLLをロードしましたが、double *のそれぞれが実際には倍数(配列)の可変数を指しています。 正しく機能するには問題があります。

ありがとうございます!

答えて

1

x = arr7(i*0.1 for i in xrange(7)) 

などを:または、あなたがそれを作るようxを初期化する必要がある場合。 xをループしたり、索引付けしたりできます。

+0

恐ろしく!ありがとう! – trayres

+0

あなたは大歓迎です。この答えがあなたの問題の解決策であると判明した場合は、それを受け入れることを覚えておいてください(その答えの投票数を上下させる数字の下にあるチェックマークアイコンを使用してください)、それは基本的なSOの礼儀です。 –

+0

ああ、もう一度ありがとう! – trayres

1

私はctypesをあまり見すぎませんでしたが、正しいタイプのnumpy配列を使用してみてください。それが自動的に機能するだけでなく、データへのポインタを含むctypes属性も持っています。

arr7 = ctypes.c_double * `n` 
x = arr7() 

、それはdouble*を望んでいるあなたの関数にxを渡します、と言う、との配列を作るn倍にするに

関連する問題