From: Keith M. <kei...@us...> - 2013-03-22 13:17:26
|
On 22 March 2013 12:37, Gisle Vanem wrote: > Is it? LoadLibraryA() doesn't absolutely need a FreeLibrary(). Windows > isn't that lame. > Really? > See > http://msdn.microsoft.com/en-us/library/windows/desktop/ms684175(v=vs.85).aspx > "... The system unloads a module when its reference count reaches zero or > when the process terminates (regardless of the reference count)." > In theory, perhaps; what MSDN claims isn't always borne out in practice. > I actually ran guessreturn.exe w/o a libz-1.dll anywhere and got a > '1' as exit-code (errorlevel). The sys-err code was 2 though; "File not > found". > Sure. When you don't have libz-1.dll installed, this is what will happen. Did you bother to try *with* libz-1.dll installed? I guess you didn't. I've seen this before. Bad Things (TM) may happen, if you don't clean up behind yourself. Just to confirm that my memory isn't failing, I *installed* MinGW's libz-1.dll, then built and ran LRN's code; here is what I see, (on Windows Vista): This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. This was accompanied by a Windows pop-up, inviting me to close the application, which it then did, *without* completing the specified return actions; (the return code was 3). For me, adding: if (h != NULL) FreeLibrary (h); before the return statement, resolved the issue. -- Regards, Keith. |