Hi, I sent an e-mail (subject: "problem with running C++ OpenDX loadable modules on AIX") to this mailing list a few hours ago, but forgot to send the source code which I mentioned in the previous e-mail. The file is below.
Sorry for the problem. Best, Irek Software Developer Center for Integrated Plasma Studies University of Colorado ************************************************************************** The source code of the test program: #include <stdio.h> #include <dlfcn.h> #include <dx/dx.h> #include <sys/ldr.h> Object in[6]; Object out; Error DXAddModule (char *name, ...) { printf("Module %s has registered itself.\n", name); return OK; } void error(char *info) { char buffer[1024]; printf("*** EXITING ***\n"); loadquery(L_GETINFO, buffer, 1024); printf("INFO=%s\n", buffer); loadquery(L_GETMESSAGES, buffer, 1024); printf("MESSAGES=%s\n", buffer); loadquery(L_GETLIBPATH, buffer, 1024); printf("LIBPATH=%s\n", buffer); printf("%s\nInfo: %s\n", dlerror(), info); exit(1); } int main(void) { void *handle; void *func; in[0] = (Object) DXMakeString("./ImportHDF5FieldUsage.h5"); in[5] = (Object) DXMakeInteger(1); handle = dlopen("./ImportHDF5Field", RTLD_LAZY | RTLD_GLOBAL); if (!handle) error("after dlopen"); printf("Trying to get a function...\n"); func = dlsym(handle, "m_ImportHDF5Field"); if (!func) error("after dlsym"); printf("Got a function...\n"); ((Error (*)(Object *, Object *))func)(in, &out); dlclose(handle); }