Имеется собраная мною shared object, необходимо не только передавать туда параметры-значения, но и несколько параметров-ссылок, чтоб возвращался результат работы библиотеки в некоторых переменных обратно, но пока что не вижу возврата результата, не знаю, как объявить правильнее. Пробовал также использовать & -взятие адреса, но пока не получается. Может это как-то связано с областью видимости переменных? Ключи компилятора для библиотеки: -ftls-model=local-dynamic и -fpic (GCC).
объявление функции в библиотеке:
void mainprocfunc(char *sPictureSourcePath, char *nProcessingFunction,char *sPicInputFormat,char *sPicOutputFormat,
char *sFormatParams,char *sProcessingParams,int iErrorCode, char *sPictureDest,float rProcTime);
три последних параметра должны передаваться по ссылке при вызове.
код вызова в вызывающей программе:
void *lib_library;
void (*mainprocfunc)(char *,char *,char *,char *,char *,char *,int, char *, float );
char *PicPath1,*nProcP,*InForm,*OutForm,*ForPars,*ProcPars,*PicPath2;
int Errcd;
float prctime;
.......................
lib_library = dlopen("lib.so",RTLD_NOW|RTLD_GLOBAL);
mainprocfunc = dlsym(lib_library, "mainprocfunc");
(mainprocfunc)(PicPath1,nProcP,InForm,OutForm,ForPars,ProcPars,Errcd,PicPath2,pr
ctime);