我需要制作一个可用于 .Net 语言(例如 C#)的大型 c++ 库。
该库包含大量可以分为两组的类。Refrence 计数类,它实现了 IRefCounted 抽象类并使用工厂方法来创建它们,并且只是使用 new/delete 的普通类。
此外,还有许多简单的功能。
最初,我只是打算为 c++/clr 中的所有内容编写包装类。但是,希望生成的包装库可以在 Mono 上运行。重新编译库和包装器以针对每个平台很好,但问题是 c++/clr 似乎只能针对 Windows,因为没有编译器可以针对其他平台,因此包装器代码无法在其他平台上工作。 ..
我在这里错过了什么(比如如何在 x 平台上运行 c++/clr 指南)还是有一种替代方法可以使所有 c++ 函数、结构和类对 C# 可用?
编辑: avaible 我的意思是可以在我的 c++ lib 中使用,例如我有
//namespace maths{
class Vector2
{
public:
float x,y;
Vector2();
Vector2(const Vector&);
Vector2(float x, float y);
float Dot();
//operators
...
};
然后在 C# id 中希望能够像普通类一样使用它,例如
maths::Vector2 a = new maths::Vector2(5, 5);
maths::Vector2 b = new maths::Vector2(1, 10);
b *= 3
maths::Vector2 c = a + b;
//c.x == 8, c.y == 35
但是我也这样做了,我无法编辑 c++ 库,任何事情都必须作为现有类和函数的包装器来完成。