<div dir="ltr">I'm having a little trouble figuring out how to do the following:<div><br></div><div>I have a procedural type defined as such:</div><div><br></div><div>===========================</div><div>type</div><div><div>  Tjson_pack = function(</div><div>    fmt : pchar;</div><div>    args : array of const)</div><div>    : pjson_t; cdecl;</div></div><div>===========================<br></div><div><br></div><div>I have a variable defined as:</div><div><br></div><div>===========================<br></div><div>_json_pack : Tjson_pack = nil;<br></div><div>===========================<br></div><div><br></div><div>And, finally, I have a local function declared this way:</div><div><br></div><div>===========================<br></div><div><div>function json_pack(</div><div>  fmt : pchar;</div><div>  args : array of const)</div><div>  : pjson_t;</div><div>begin</div><div>  if (_json_pack <> nil) then begin</div><div>    {$warning not sure how to handle this}</div><div>    result := _json_pack(fmt, args);</div><div>  end else begin</div><div>    result := nil;</div><div>  end;</div><div>end;</div></div><div>===========================<br></div><div><br></div><div>The error message I get when trying to compile is this:</div><div><br></div><div>Error: Wrong type "Array Of Const" in array constructor<br></div><div><br></div><div>If I try to make my local json_pack function cdecl, I get this:</div><div><br></div><div>Error: VarArgs directive (or '...' in MacPas) without CDecl/CPPDecl/MWPascal and External<br></div><div><br></div><div>The reason I'm using a procedural type is because I'm loading the external library at runtime via dynlibs:</div><div><br></div><div>===========================<br></div><div>_json_pack := Tjson_pack(dynlibs.GetProcAddress(JanssonLibHandle, 'json_pack'));<br></div><div>===========================<br></div><div><br></div><div>so I can't declare my function as external, since it's not. I can't declare my procedural type as external, of course:</div><div><br></div><div>Error: Procedure directive "EXTERNAL" not allowed in procvar declaration<br></div><div><br></div><div>How can I do this? Is there any way for me to pass an array of const argument through directly to a cdecl'ed procvar call?</div><div><br></div><div>(And yes, I know FPC has a built-in json engine... that's besides the point :))</div><div><br></div><div>Thanks,</div><div><br></div><div>-Seth Grover</div><div><br></div></div>