0

Python 2.6 と ctypes を使用する Win7 では、COM dll で関数を呼び出そうとしていますが、成功しません。
ここに私がやっていることのコードスニペットがあります。

import ctypes
from ctypes import *
h_func = c_int(0);
h_c    = c_int(0);
h_text = ctypes.create_string_buffer(32);
usbDll = ctypes.WinDLL ("c:\\temp\\PwrUSBDll.dll");
CheckStatusPowerUSB = usbDll.CheckStatusPowerUSB;
InitPowerUSB = usbDll.InitPowerUSB;
#
#===This is where it all goes down the tubes.
#
InitPowerUSB (byref(h_func), byref(h_text), byref(h_c));
#
# I keep getting a WindowsError: exception: access violation writing 0x00000000
#
print h_func.value;
print h_text.value;
print h_c.value;

InitPowerUSB は、データを返すために 2 つのパラメーターを受け取り、リターン コードを返します。
誰でもこれで私を助けることができますか?私はこれをC#で問題なく動作させています。

4

1 に答える 1

1

なぜ使用しないのpypowerusbですか?

関連するヘッダー ファイルを見ると、は1 つのInitPowerUSB引数 (整数へのポインター)のみを受け取りますが、3 つの引数を指定します。

引数を 1 つだけ指定して関数を呼び出してみてください。

于 2012-12-27T21:02:55.140 に答える