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