I've never made any application with plugins before, but I might need to soon. A way to add functionality to a program that is already compiled. Like the extensions of firefox, for example (but not nessesarily in the exact same way).

What is the best / most frequently used way to do this? What sort of file will the plugin be? How does the application communicate with it? What sort of techniques are used? Doesn't have to be QT, so I post it here.

Thanks!