5

次のように宣言された関数を含む VB6 COM DLL があります。

Public Function testFunc(ByRef v1 As Long) As Boolean

以下を使用して Python2.7 からこれを呼び出そうとすると:

var1 = c_long()
VB6DLL.testFunc(X1)

X1 が var1 の場合、「int() 引数は 'c_long' ではなく、文字列または数値でなければなりません」という例外が発生します。

X1 が yref(var1) の場合、「int() 引数は 'cArgObject' ではなく、文字列または数値でなければなりません」という例外が発生します。

VB6 関数が ByVal パラメーターを使用していて、Python から正しいパラメーターを送信した場合、すべて問題ありません。では、DLL に値を変更させたいので、参照を送信するにはどうすればよいでしょうか。ByRef 引数が int() になるのはなぜですか?

4

0 に答える 0