C#程序中如何调用C++的DLL?

C++DLL中封装了一些类和函数,想要在C#程序中调用它们。

直接添加引用的话,会显示错误“未能添加对xxxx.dll的引用,请确保文件可访问并且是一个有效的程序集或COM组件”。如下图1所示。

我查了一下,是说C++DLL是非托管类,所以是不能直接引用的。需要添加类似下面的代码:

[DllImport("*.dll")]

private static extern int ***(string text);

我想请问一下

1.代码有效的话,要引用的dll是要放在项目bin/debug文件夹下吗?

2.第二行代码需要把DLL中包含的所有函数全都写出来吗?因为一个dll封装了很多的函数。

或者有没有人能帮我解答一下C#调用C++Dll应该怎么实现呢?我查了好多资料,但还是不太明白。谢谢大家。

.
图片说明

(1)不一定,也可以放在system32下
(2)不需要,需要调用哪个就声明哪个

cpp工程的def文件有没有
or 注册com组件