关于调用DLL中C函数中的var_list参数的正确调用方法?
请教个问题,在Delphi调用C写的DLL函数时,函数中有可变参数,
例如:int add(int a, ...);
在Delphi中如何向其正确传递参数?可以假设参数都为整数
[解决办法]
a : array of Integer;
[解决办法]
delphi有一个关键字:varargs专门用于可变参数处理的,我的一个测试:
DLL程序:
//---------------------------------------#include <windows.h>#pragma argsusedint WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved){ return 1;}//---------------------------------------extern "C" __export int testdll(int a,...){ va_list ap; int arg; va_start(ap, a); int total =0; for(int i=0;i<a;i++) { arg = va_arg(ap,int); total += arg; } va_end(ap); return total;}