The global data produced for a DLL belongs in the DLL, and will disappear if the DLL is unloaded - that's the whole purpose of DLL's.
I don't have a reference to that, but nothing else makes any sense at all. If you produce a DLL that contains
Code:
void dllHello()
{
printf("Hello World\n");
}
and then produce an executable that calls dllHello(), I expect the string "Hello, World\n" to be part of the DLL, not the executable. In your understanding, where do you get a different understanding?
The normal case is that the DLL is loaded as part of the process creation. In this case, the DLL is not closed by the application code, but by the maintenance code in the kernel that deals with cleaning up after the process when it's exited.
I'm not sure what can be confusing about this, except that I perhaps should have avoided the double negative.
--
Mats