次のように宣言された関数を含む 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() になるのはなぜですか?