我的函数中的参数太多 - Python

时间:2011-09-14 09:11:40

标签: python function dll

我正在尝试在dll中访问我的函数并将值作为整数传递给它。但我得到的ValueError为:

Procedure probably called with too many arguments (4 bytes in excess)

我的python .py脚本如下:

func2.restype = c_int
func2.argtypes = [c_int]
func2(3)

...

我在dll中的实际功能只是一个简单的功能,如:

int DLLfun2(int argtest) { return argtest + 1; };

...

看起来像一个简单的问题,但我猜我错过了什么。请帮助。

干杯。

1 个答案:

答案 0 :(得分:4)

看起来很奇怪,因为整数应该自动转换,但尝试使用func2(c_int(3))

编辑: 根据{{​​3}},由于错误的调用约定(cdecl而不是stdcall),可能会引发此异常。但仍然调用该函数(只是一种警告:s)

请确保您在dll中声明。

如果使用windll加载库,则必须使用stdcall调用约定,否则使用cdll模块。