Re: dll linkage
On Fri, 05 May 2006 13:23:01 GMT, "David Ching" <dc@remove-this.dcsoft.com>
wrote:
"David Lowndes" <DavidL@example.invalid> wrote in message
news:u87m52l85euc5321dp3t60cptffkl7kkb8@4ax.com...
Have a look at the DLL project's linker property: "Ignore Import
Library" setting on the General page.
Nice, thank you! I'll be using that in my current project. :-)
This switch seems to have effect for all projects that are dependent on the
DLL. So if one project wants this switch off, and the others want it on,
there's no way to accomodate. It would have been better if the projects
depdendent on the DLL would specify whether to use the import library,
instead of having this setting in the DLL project (since it's global for all
projects importing it).
The Linker/General page contains "Link Library Dependencies" and the
enigmatic "Use Library Dependency Inputs" options. The first one sounds
like the inverse of the "Ignore Import Library" option, and you could use
it in dependent projects. Again, it's pretty coarse.
The "Ignore Import Library" option might be useful if you were to use the
#pragma comment(lib) option:
http://msdn2.microsoft.com/en-us/library/7f0aews7(VS.80).aspx
Search the MFC headers and see this message for examples:
http://groups.google.com/group/microsoft.public.vc.language/msg/59e83fee3b5018f6
I'm thinking you would want to use the #pragma anyway to make it easier to
use your library outside of the solution that contains it, and you could
disable the implicit linking with another macro. That is, you'd surround
the #pragma stuff with:
#ifndef X_DLL_NO_IMPLICIT_LINKING
#pragmas...
#endif
Then your project that wants to LoadLibrary X_DLL instead of implicitly
linking to it would #define X_DLL_NO_IMPLICIT_LINKING.
--
Doug Harrison
Visual C++ MVP