E2591 Only cdecl functions may use varargs (Delphi)

From RAD Studio
Jump to: navigation, search

Go Up to Error and Warning Messages (Delphi)


This error occurs whenever the varargs directive is used with non-cdecl functions.

function test(): Integer; varargs;
begin

end;

To fix this error, you need to declare your function with the external and cdecl directives:

function test(): Integer; varargs; cdecl; external 'externalLibrary.dll'; //This imports functions from a dynamically loadable library.
begin

end.
Note: This only occurs when compiling with Delphi ARM Compilers (dcciosarm64, dccosxarm64, dccaarm, and dccaarm64). On Win32 DCC32, the code produces E2277 Only external cdecl functions may use varargs (Delphi). Besides, 64-bit Intel compilers (dcc64, dccosx64, and dcclinux64) do not produce an error.

See Also