Are you using Hook functions? Last time I attempted to use them, I found null pointers in the chain. ie: structures not initialised.
However, using the
scriba_ functions, with a valid pProgram:
sbfun=scriba_LookupFunctionByName(pProgram,"main::callbacka")
if sbfun=0 then print "Unable to locate callbackA" : goto ending
string s={"One","Two","Three","Four"}
args=scriba_NewSbArgs(pProgram,"s s s s",s[0],s[1],s[2],s[3])
count=4
iError=scriba_CallArgEx(pProgram, sbfun, @ReturnData, count, args)
scriba_DestroySbArgs(pProgram,args,4)
Passing integers {100,200,300,400}, is simpler: Here it is done with an array of
longs, instead of using a set of SB data blocks: (2 signifies integer type)
sbfun=scriba_LookupFunctionByName(pProgram,"main::callbacka")
if sbfun=0 then print "Unable to locate callbackA" : goto ending
long a={2,4,100,0, 2,4,200,0, 2,4,300,0, 2,4,400,0} : args=@a
count=4
iError=scriba_CallArgEx(pProgram, sbfun, @ReturnData, count, args)
By the way, I've tested this with your 64bit libScriba.dll (GCC 2013)