我尝试按照 this walkthrough 使用 Visual C++ 2012 创建一个 dll,但我失败了。当我尝试在不同的项目中导入内置的 dll 作为引用时,我收到此错误:无法添加对“***.dll”的引用。请确保该文件可访问,并且它是有效的程序集或 COM 组件。
我不明白我的代码有什么错误以及为什么会出现此错误。这是我的头文件和 cpp 文件:
DLLEXPORT.H
__declspec(dllexport) bool setMute();
__declspec(dllexport) bool setActive();
DLLEXPORT.CPP
#include "DLLEXPORT.H"
bool setMute(){
//some stuff
}
bool setActive(){
//some stuff
}
此外,我也尝试通过这个 solution 解决问题,但我得到了这个错误:TlbImp : error TI1002 : The input file '****.dll' is not a valid type library.
最佳答案
Microsoft 世界中有不同种类的 DLL(和 EXE): native DLL,由 native C++(或 C)和程序集生成,包含 .NET 可执行内容。您阅读的演练将为您提供 native DLL,而您尝试执行的引用仅适用于 .NET 程序集(和 COM 组件)。
因此,您要么必须构建一个 .NET DLL(它将是 C++/CLI 而不是 native C++),要么将您的 native DLL 链接到 native 应用程序(或导入它)而不是在 .NET 项目中引用它。
关于c++ - 无法使用 Visual C++ 2012 创建有效的 dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15788090/