Cでドライバー用のDLLを開発しました。C++でテストプログラムを作成しましたが、DLLは正常に動作します。
ここで、Pythonを使用してこのDLLと対話したいと思います。ユーザー定義のC構造体のほとんどを正常に非表示にしましたが、C構造体を使用する必要があるポイントが1つあります。私はPythonにかなり慣れていないので、物事を間違える可能性があります。
私のアプローチは、ctypeを使用してPythonでいくつかの構造を再定義してから、変数をDLLに渡すことです。ただし、これらのクラスには、次のような再帰型を含むカスタムリンクリストがあります。
class EthercatDatagram(Structure):
_fields_ = [("header", EthercatDatagramHeader),
("packet_data_length", c_int),
("packet_data", c_char_p),
("work_count", c_ushort),
("next_command", EthercatDatagram)]
EthercatDatagram内では、EthercatDatagramがまだ定義されていないため、パーサーがエラーを返すため、これは失敗します。
DLLが正しく理解できるように、このリンクリストをPythonでどのように表現する必要がありますか?