This article has been archived. It is offered "as is" and will no longer be updated.
When you try to use Microsoft Visual Studio 2005 to build a Microsoft Visual C++ native class library project, you may receive an error message that resembles the following:
LNK1104: cannot open file ‘FileName’
Note In this error message, FileName represents the name of a DLL that could not be linked correctly.
This problem occurs when you use the #import directive in the project to reference a mixed-mode DLL.
This problem occurs because the Visual C++ build system cannot link to a library when a dependent DLL of that library is a managed DLL that has no native exports. The mixed-mode DLL contains both managed exports and native exports. However, the build system does not detect the native exports.
To work around this problem, follow these steps:
In Visual Studio 2005, click the name of the project in Solution Explorer, and then click Properties on the Project menu.
In the Property Pages dialog box, expand Configuration Properties, expand Linker, and then click General.
Select No under Link Library Dependancies, and then click OK.
Note When you set Link Library Dependancies to No, libraries that you reference by using the #import directive are not linked during the build process.
Manually add a reference for each library that is required for the project. To do this, follow these steps for each library:
On the Project menu, click References.
In the Property Pages dialog box, click Add New Reference.
Click the name of the library that you want to add, and then click OK.
On the Build menu, click Build Solution.
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.