I have a C++ driver I'm trying to compile, and it has this line in the code:
#import "msado15.dll" no_namespace rename("EOF", "EndOfFile")
But when I compile the project, I get the error:
Error 1 fatal error C1083: Cannot open type library file: 'msado15.dll': No such file or directory
I have the DLL, but where do I put it so that the compiler can see it?
You need to have library files and function definition headers to do this. If you happen to don't have them, you would try dynamic loading of DLL using LoadLibrary and GetProcAddress, pointers for linking functions.
You can place the DLL in the same path as the referencing file (.h) as you have done, alternatively you can modify the additional include paths for the LIB section of your project(s). In VC++ this will be:
Project | Properties | Configuration Properties | Linker | General | Additional Library Directories
This method can be useful if you are centralizing third party dependencies and you don't want to be forced to keeping the referenced file (.h) and DLL in sync via the same path.
See this MSDN link for further details.
OK, found it by reading the documentation. I just had to put it in the same folder as the referenced file (which was in a different location to the project source code).
This may be a little out of date for most people, however - for Visual Studio 2008, for a particular
Project |
Configuration Properties |
C/C++ |
Additional Include Directories |
Select and click on the ellipsis (...).
Add the directory
and move it to the bottom of the list using the arrows.
For VC++2010(VS2010): the compiler is not able to see the msado15.dll
which is located at C:\Program Files\Common Files\System\ado
Go to Project | Properties | Configuration Properties | VC++ Directories and add the following at executable directories
$(CommonProgramFiles)\System\ado;
You should be fine
Try to set "Delayed DLL loading" (or an option similar) in 'Project Properties'->'Linker'->'input' section of your VC++ project.