无法使用Visual C+;创建有效的dll+;2012 我尝试通过Visual C++ 2012创建一个DLL,但我失败了。当我试图导入另一个项目中的内置dll作为引用时,出现以下错误:无法添加对“***.dll”的引用。请确保该文件可访问,并且是有效的程序集或COM组件。

无法使用Visual C+;创建有效的dll+;2012 我尝试通过Visual C++ 2012创建一个DLL,但我失败了。当我试图导入另一个项目中的内置dll作为引用时,出现以下错误:无法添加对“***.dll”的引用。请确保该文件可访问,并且是有效的程序集或COM组件。,c++,visual-c++,dll,dllexport,C++,Visual C++,Dll,Dllexport,我不明白我在代码中的错误是什么,为什么会出现这个错误。这是我的头文件和cpp文件: DLLEXPORT.H DLLEXPORT.CPP 此外,我还试图解决这个问题,但是我得到了这个错误: TLBIMP:错误TI1002:输入文件****.dll不是有效的类型库。< /Cord> < p>在微软世界中有不同类型的DLL(和exes):原生DLL,由原生C++(或C)和程序集所支持,包含.NET可执行的东西。您阅读的演练将为您提供一个本机DLL,而您尝试执行的引用仅适用于.NET程序集(和COM组件

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

DLLEXPORT.H DLLEXPORT.CPP

此外,我还试图解决这个问题,但是我得到了这个错误: TLBIMP:错误TI1002:输入文件****.dll不是有效的类型库。< /Cord>

< p>在微软世界中有不同类型的DLL(和exes):原生DLL,由原生C++(或C)和程序集所支持,包含.NET可执行的东西。您阅读的演练将为您提供一个本机DLL,而您尝试执行的引用仅适用于.NET程序集(和COM组件)


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

也将此名称添加到具有导出定义的文件中。您的DLL不是.NET程序集,也不是COM服务器,因此将其作为引用添加无法工作。您需要使用[DllImport]来使用它。以这种方式创建的Dll应使用链接器附加依赖项添加到客户端C/C++项目中,而不是作为.NET或COM引用。您需要将.lib文件添加到链接器列表中。或者您可以将DLL项目添加到同一解决方案中,然后从目标项目添加对DLL项目的引用。在我看来,更准确的标题应该是:“如何使用托管代码中的DLL?”
__declspec(dllexport) bool setMute();
__declspec(dllexport) bool setActive();
#include "DLLEXPORT.H"
bool setMute(){
    //some stuff
}
bool setActive(){
    //some stuff
}