我在c中创建了一个简单的c函数,称为“加”,它将两个长整数加在一起。源代码:
long long add(long long a, long long b){
return a+b;
}
我正尝试在python中使用ctypes包装器使用该函数,但它拒绝正常工作:
import ctypes
add = ctypes.windll.LoadLibrary("main.dll").add
add.restype = ctypes.c_longlong
add.argtypes = [ctypes.c_longlong, ctypes.c_longlong]
add(ctypes.c_longlong(12), ctypes.c_longlong(12))
它返回:
ValueError: Procedure probably called with too many arguments (16 bytes in excess)
注意:c编译器是带有参数的gcc
gcc -c -Wall -Werror -x c -fpic main.cpp
gcc -shared -o main.dll main.o
python编译器是cpython版本3.7 32位 架构是Intel Core i5-8500 操作系统是Windows 10