我正在尝试将作为托管 C++ 链接的第 3 方 dll 导入 VS2010 中的 C#。据我了解,这应该是可能的。dll 也可以通过添加引用很好地加载,但即使整个 DLL 的内容在对象浏览器中可见,我也无法访问命名空间中的任何内容
但是有一个例外:如果我在 DLL 中公开类(我有源代码),我可以访问类的无参数构造函数,但仅此而已。我尝试了各种解决方案,包括将所有内容都包含在内,extern "C++"
但这并没有什么区别。
我可能做错了什么?请注意,C++ 项目没有 dllMAin 文件。
这些类在 C++ 项目中声明如下:
#ifndef _POINT_H
#define _POINT_H
***usings***
namespace NS {
public class __declspec(dllexport) Point
{
private:
double* pstart_;
int n_;
public :
Point()
: pstart_(0), n_(0)
{}
Point(double x, double y)
: pstart_(new double[2]), n_(2)
{
pstart_[0] = x;
pstart_[1] = y;
}
Methods etc...
}
}