#include #include #include extern "C" { int load_slave( void ) { printf( "Loading slave.so file\n" ); void* lib_handle; /* handle of the opened library */ lib_handle = dlopen("slave.so", RTLD_NOW); if (!lib_handle) { fprintf(stderr, "Error during dlopen(): %s\n", dlerror()); exit(1); } printf( "Unloading slave.so file\n" ); dlclose( lib_handle ); return 1; } int DllMain( int arg ) { printf("Master::DllMain called with argument %i\n", arg ); return 1; } } class DllMainLoader { public: DllMainLoader() { puts("Master::DllMainLoader");DllMain(0); }; ~DllMainLoader() { puts("Master::~DllMainLoader");DllMain(1); }; } theLoader;