The PROCESS_ATTACH in DllMain occurs the first time you load the dll into a process. So unless you are explicitly loading and unloading the dll in your SW everytime you call a function in the dll, you will get this event only once.
Or what you could do is always load a function with a specific signature and then make this a required condition for all dlls that your software uses. You basically recommend who ever is creating the dll to alwasy have a particular startup function defined. So kinda like agreeing on an interface for the dll to work with your app
Hope this helps
Bilal Durrani
NI