How to detect multiple lib versions?
- From: "Bob Altman" <rda@xxxxxxxxxxxxx>
- Date: Wed, 8 Oct 2008 07:09:53 -0700
Hi all,
I have authored several native DLLs (call them A, B, and C). These libraries have references between each other (A calls B which calls C). These libraries are built and made available to callers both in "debug" and "release" versions. The release versions of the libraries are A, B, and C (.lib and .dll), while the debug versions are A_debug, B_debug, and C_debug (.lib and .dll).
Now, because these libraries maintain internal state and call into each other, ugly things happen if a caller links with the release version of one library and the debug version of another library. At run-time, this causes both versions of some of the libraries to be simultaneously loaded. (For example, if the user calls into the debug version of A, which calls into the debug version of B, and then the user explicitly calls into the release version of B, then both B and B_debug would be simultaneously loaded, each with its own internal state.)
So, how can I detect when a program references the debug version of one of my libraries and the release version of another library? Ideally, I'd like to put some magic into the source code that causes a linker error. Alternatively, I guess I could have DLL initialization code that somehow detects when more than one instance of the DLL have been loaded.
TIA - Bob
.
- Follow-Ups:
- Re: How to detect multiple lib versions?
- From: David Lowndes
- Re: How to detect multiple lib versions?
- From: Bob Altman
- Re: How to detect multiple lib versions?
- From: David Connet
- Re: How to detect multiple lib versions?
- Prev by Date: Re: porting from C++Builder
- Next by Date: Re: porting from C++Builder
- Previous by thread: porting from C++Builder
- Next by thread: Re: How to detect multiple lib versions?
- Index(es):
Relevant Pages
|