well im trying to avoid having to re-compile the app if possible. that's why i want to link to the dll. if it isnt possible, i guess i could just decide what i would want to add and then add it as i go. also, if i need to extend the functionality that much, i can always rewrite the application i suppose
As long as you don't change the exposed dll functionality, such as function names and what parameters they take, etc, an old app will run fine with a newly compiled dll.
However, your app will not be able to take advantage of the new functionality in the dll!
Ok, so the way our system works is that you have a "create" function in the DLL that returns a pointer to the base-class. For each variant of the DLL, it obviously returns the relevant derived class.
This works well as long as your derived function doesn't need further member functions than the original base-class provides - and of course, all base-class functions need to be virtual.