I'm working on several projects that I'd like to design in a way that modules can be downloaded after the release of the program to extend it's functionality. I'm wondering what the general way of going about creating these systems is. Would I use something like a DLL? To give you a better idea of what I'm trying to do I'll give you an overview of the main project I'd like to use this for:
I'm working on a MS VC++6 MFC based dialog application. I want to set it up so that it uses a tabbed view (like a property sheet). I'd like to code a base application that just has the dialog box and the ability to load plug-ins. Then I want to make plug-ins that create their own tab on the dialog box. This way if I have 3 plug-ins, my dialog box will have 3 tabs. I'd also like to be able to code the controls (on each tab) and their functionality into the plug-ins. So each plug-in would contain the data to create a tab in the dialog box, create and implement the functionality of the controls on each page, and a few functions to implement the functionality of the plug-in. I'm providing 300 points (this may rise) for this question so I expect to get a little more than suggestions from the experts (I'm not asking you to write my program, but code samples would be great).
If you'd like any more information please feel free to ask.