問題タブ [python-bindings]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
146 参照

python - NoneType 引数またはコールバック関数を ctypes の関数に渡すにはどうすればよいですか

私は C/C++ ライブラリを中心とした非常に単純な Python バインディングを書き始めましたが、許可がないため、法的な理由からここで共有することはできません。

これにはコールバックとしてWINFUNCTYPE()が含まれており、Pythonでコールバックとして使用する関数を装飾するために使用でき、バインドしている関数のargtypesで定義されています。

コードでは次のようになります。

私はそれをこのように使うことができます

これは問題なく、問題なく期待どおりに動作します。

問題は、次のようなことをすると発生します。

次のエラーが表示されます。

その理由は完全に明らかです。ctypes は、NoneType ではなく 2 番目の引数として WINFUNCTYPE() が表示されることを期待していますが、使用している SDK のドキュメントには、コールバックを NULL として設定することが可能であると記載されています。しかし、それを修正する方法がわからないだけで、オンラインまたは ctypes ドキュメントで何かを見つけるのに苦労しています。

C/C++ ライブラリをバインドしようとしたのはこれが初めてなので、明らかな見落としがあればご容赦ください。誰かが私がこれを解決するのを手伝ってくれるなら、私は本当に素晴らしいでしょう.