845 ObjectPAL: Custom and third party DLLsVERSIONS: P9 and later
SUBJECT: Using DLLs placed in a network directory
BY: JOE HUMPHREYS
Date: 10 November 1999
I have a Paradox/Interbase application which uses some Delphi dlls. To simplify installation, I put the dlls into the network working directory rather than into each user's hard drive. This worked fine in Paradox 7 and 8. When I moved to Paradox 9, however, I ran into a problem. If a form which has one of these DLLs in a Uses clause runs into a problem and hangs, other users are unable to open the form.
I have tried to address this problem by deleting the dlls from the network working directory and putting them instead in each user's windows\system directory.
BY: BO BELHAGE
Date: 31 March 2000
Solved by putting all external dlls in your windows directory. For some reason having the dlls in the working dir is not working.
BY: JEFF SHOAF
Date: 20 november 2004
I'm in the process of upgrading a Paradox 8 app to Paradox 9.
One of the forms that uses a custom DLL works fine under Paradox 8 and Paradox 9, but the other form that uses the DLL won't work under Paradox 9 although it still works under Paradox 8. No changes were made to the code; I just opened it and saved it using P9. I can open the copy of the form saved under P9 using P8 and it still works fine - but it won't work under P9.
I've commented out the calls to the DLL and the form will then run. I've copied the Uses block and the DLL method calls from the code that runs under P9 and pasted it into the form that won't run.
I found the problem... The DLL was in the working directory and all users were using the same file. This worked fine under P8, but evidently P9 locks DLL's differently - only one user could access the DLL at a time, and since there's a process that uses the DLL runs continuously, it prevented any other user from accessing it. Very confusing!