1

我尝试按照此演练使用 Visual C++ 2012 创建 dll ,但失败了。当我尝试在不同的项目中导入构建的 dll 作为参考时,出现此错误:A reference to '***.dll' could not be added. Please make sure that the file is accessible, and that it is a valid assembly or COM component.

我不明白我在代码中的错误是什么以及为什么会出现此错误。这是我的头文件和cpp文件:

DLLEXPORT.H

__declspec(dllexport) bool setMute();
__declspec(dllexport) bool setActive();

DLLEXPORT.CPP

#include "DLLEXPORT.H"
bool setMute(){
    //some stuff
}
bool setActive(){
    //some stuff
}

此外,我也尝试通过此解决方案解决问题,但出现此错误:TlbImp : error TI1002 : The input file '****.dll' is not a valid type library.

4

1 回答 1

3

Microsoft 世界中有不同种类的 DLL(和 EXE):本机 DLL,由本机 C++(或 C)和程序集生成,包含 .NET 可执行文件。您阅读的演练将为您提供本机 DLL,而您尝试执行的引用仅适用于 .NET 程序集(和 COM 组件)。

因此,您要么必须构建一个 .NET DLL(这将是 C++/CLI 而不是本机 C++),要么将您的本机 DLL 链接到本机应用程序(或导入它),而不是在 .NET 项目中引用它。

于 2013-04-03T13:11:41.170 回答