Перейти к содержанию

Обмен данными с shared object


Рекомендуемые сообщения

Имеется собраная мною 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);
Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...