/* * dynmodule.c * * This goes with dyndemo.c to form a demonstration of dynamic loading * of code. This file must be compiled as a DLL (or whatever it takes * to make it a candidate for dynamic loading). */ /* Signature: 503dd7c5 23-Jul-2005 */ #include <stdio.h> extern int variable_in_base; extern int function_in_base(int x); int callme(int x) { /* * Note that on Windows this attempt to use a VARIABLE that is defined in * the base application will give nonsense results. It does not fail in * the sense that it does not report a linker error, but the location * referenced as "variable_in_base" will NOT be the one that I wanted. * Or rather expected! Thus to actieve the desired effect it seems * necessary to pass a reference to the variable to an initialisation * function here, and then store it... */ printf("variable in base = %.8x @ %p\n", variable_in_base, &variable_in_base); printf("function in base = %p\n", function_in_base); return 3*function_in_base(x) + 1; } /* end of dynmodule.c */