BorlandTalk.com Forum Index BorlandTalk.com
Borland discussion newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Strange problem with call to DbiInit when 2 apps share Parad

 
Post new topic   Reply to topic    BorlandTalk.com Forum Index -> Delphi Databases (Desktop)
View previous topic :: View next topic  
Author Message
Olivier Beltrami
Guest





PostPosted: Fri Jan 07, 2005 5:35 pm    Post subject: Strange problem with call to DbiInit when 2 apps share Parad Reply with quote



This is a brain-twister for all you Paradox gurus out there ;-)

My app shares Paradox tables with a C++ DLL which is loaded in memory by
QuarkXPress (a desktop publishing software). At one customer site, if my app
is running, then when the DLL called by QuarkXPress 6 tries to call
DbiInit() the call fails without any error code; just goes poof ! But if my
app is not running, then all is well.

Here are the givens :

1) I have set localshare to true and followed all the procedures to share
paradox tables. I have checked that there is only one copy of idapi32.dll. I
have tried to purge my user's system of the BDE and re-installed it.

2) This setup works everywhere in the world except at one user site, and
then at that user site is works with every version of QuarkXPress (3-4-5)
except 6. That is to say, after the call to DbiInit fails with QuarkXPress
6, if I immediately try to run the same thing, but calling my DLL from
QuarkXPress 3, 4 or 5 then all is well.

3) If my app is not running, then all is well with every version of
QuarkXPress.

4) PrivateDirs are all local (in c:temp and some individual subfolders) on
a W2K workstation, NetDir is on a shared drive on an NT4 Server.

I am obviously not looking for assistance in debugging my C++ DLL used with
QuarkXPress, and at any rate I do not believe the problem is in the DLL,
since it works everywhere fine, and at my customer site fine as long as my
app is not running.

What I am looking for is guesses on what the problem could be. What could
make a call to DbiInit fail if there are other BDE apps running ? My guess
is that it has to do the locking of some files by QuarkXPress 6. Could it be
that it tries to get an exclusive lock on the idapi32.CFG file and that it
works fine as long as no other BDE app is running ?

Any ideas, however wild, are welcome.

TIA,

Olivier Beltrami
-
Bank Holidays, Dates and Calendar Related Links :
http://www.qppstudio.net/worldholidays.htm
http://www.qppstudio.net/freeware.htm


Back to top
Bill Todd
Guest





PostPosted: Fri Jan 07, 2005 7:12 pm    Post subject: Re: Strange problem with call to DbiInit when 2 apps share P Reply with quote



That is almost certainly not the problem. DLLs are loaded by Windows, not
by the application. If the DLL is statically linked into Quark Express
then it is loaded automatically. If the DLL is being loaded dynamically by
Quark Express then Quark Express is calling the Windows API LoadLibrary
function.

A wild guess is to increase the shared memory size or change the shared
memory location or both.

--
Bill Todd (TeamB)
TeamB cannot answer questions received via email
Back to top
Display posts from previous:   
Post new topic   Reply to topic    BorlandTalk.com Forum Index -> Delphi Databases (Desktop) All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.