If it's code size that you are worried about, assuming all programs would run on the same system (and even if not, maybe), the solution would be a DLL, which includes all the code that you need.
The above is quite possibly correct, but there are considerations.
What OS is this app on (Symbian, Palm, Linux, WinCE)? Depending on the device & OS a DLL (or shared lib) won't necessarily get you the smallest size, since it includes more code than the equivalent static lib (the linker cannot remove code that is actually dead in your particular app). You would have to do that stripping by hand. If you just make a set of very focused apps using CryptoPP as a static lib, turn on optimize for space, you should get the smallest individual app for each one. However, the size of all of them will likely (but not 100%) be larger than the DLL version, so depending on your deployment strategy DLL or single app makes more sense. One thing you should definitely do is write your DLL to link Crypto++ in as a static lib and only expose the interfaces you specifically need and make specific calls to Crypto++. This allows the linker to do the best it can for you.
Hope that helps.
michael
