#include "init_dr.h" #include #include Tds_OpenRead ds_OpenRead; Tds_Read ds_Read; Tds_CloseRead ds_CloseRead; Tds_OpenWrite ds_OpenWrite; Tds_Write ds_Write; Tds_CloseWrite ds_CloseWrite; Tproc_c proc_c; union { void * p; Tproc_c proc_c; Tds_OpenRead ds_OpenRead; Tds_Read ds_Read; Tds_CloseRead ds_CloseRead; Tds_OpenWrite ds_OpenWrite; Tds_Write ds_Write; Tds_CloseWrite ds_CloseWrite; } u; //int InitDataRiver() //{ // void * dr_lib = dlopen("/tmp/libtestlib.dylib",RTLD_NOW); // if (dr_lib) // { // u.p = dlsym(dr_lib,"proc_c"); // proc_c = u.proc_c; // ds_OpenRead = u.ds_OpenRead; // u.p = dlsym(dr_lib,"ds_Read"); // ds_Read = u.ds_Read; // u.p = dlsym(dr_lib,"ds_CloseRead"); // ds_CloseRead = u.ds_CloseRead; // u.p = dlsym(dr_lib,"ds_OpenWrite"); // ds_OpenWrite = u.ds_OpenWrite; // u.p = dlsym(dr_lib,"ds_Write"); // ds_Write = u.ds_Write; // u.p = dlsym(dr_lib,"ds_CloseWrite"); // ds_CloseWrite = u.ds_CloseWrite; // return 1; // } // else return 0; //}; int InitDataRiver() { void * dr_lib = dlopen("/tmp/libdata_river.dylib",RTLD_LAZY); // void * dr_lib = dlopen("/tmp/libtestlib.dylib",RTLD_NOW); if (dr_lib) { u.p = dlsym(dr_lib,"proc_c"); proc_c = u.proc_c; u.p = dlsym(dr_lib,"ds_OpenRead"); ds_OpenRead = u.ds_OpenRead; u.p = dlsym(dr_lib,"ds_Read"); ds_Read = u.ds_Read; u.p = dlsym(dr_lib,"ds_CloseRead"); ds_CloseRead = u.ds_CloseRead; u.p = dlsym(dr_lib,"ds_OpenWrite"); ds_OpenWrite = u.ds_OpenWrite; u.p = dlsym(dr_lib,"ds_Write"); ds_Write = u.ds_Write; u.p = dlsym(dr_lib,"ds_CloseWrite"); ds_CloseWrite = u.ds_CloseWrite; return 1; } else return 0; };