"Juan Lang" juan.lang@gmail.com writes:
If I 1. allow a separate dll per function, as the registry allows, and 2. don't cache the dll names myself, I guess I must store the HMODULE for each function? The cache allows me to avoid that.
In this implementation, I cache each DLL, so that I only do one LoadLibrary per dll name. This has less memory impact than the straw man approach I think you suggest, and is (I guess) more readable than the one-dll-per-SIP approach.
Multiple LoadLibraries on the same dll don't cost anything, they just increment the refcount. If you want to enforce that all functions use the same library you can still do it by checking the returned HMODULE.