0
  1. link("parameters", &connection); 文字列パラメータを取り、接続を初期化するDLL(C言語)の関数があります。

  2. connect(connection)の呼び出しで初期化された接続(オブジェクト)という関数がありますlink()

質問:Python接続オブジェクト関数Connect()を引数として渡す方法は?

from ctypes import *
mydll = CDLL (link.dll)
# How define the connection object?
top = link ("localhost: 5412", connection)
top = connect (connection)
4

1 に答える 1

0

winapiハンドルの長さは32ビットだと思いますが、実際の長さであることを確認する必要があるかもしれません。他の方法で接続を使用していない場合は、次のようにすることができます。

connection_t = ctypes.c_uint32

link = mydll.link
link.argtypes=(ctypes.c_char_p, ctypes.POINTER(connection_t) )
connect = mydll.connect
connect.argtypes=(connection_t,)
...
connection = connection_t()
link ("localhost: 5412", ctypes.byref(connection))
...

ご了承ください:

  • 同じバイト長である限り、HANDLEと同等の不透明なタイプとして別のタイプを使用できます。さらに良いことに、単に割り当てるのではなく、継承することで、作成した接続_tタイプを「保護」できます。
于 2012-04-20T19:00:16.687 に答える