将C ++计算转换为C#program

时间:2016-03-25 13:39:49

标签: c# methods c++-cli

我有一个C ++项目,希望能够用C#调用这些函数。

我创建了一个C ++类库,并在C#项目中引用了它。一切正常。 (我知道方法定义应该只在.h文件中,方法体应该在.cpp文件中。对于这个例子,我会把它一起写。)

//Definition in C++
namespace Formularia {
    public ref class functions{
    public:
        long calculateSum(long a, long b){
            return a + b;
        }
    };
}

有了这个,我可以用C#调用它,如下所示:

long result = functions.calculateSum(1, 2);

我可以像这样运行它,但是说'无法加载文件或程序集'............'或其中一个依赖项'。

如果我删除ref,如下所示:

namespace Formularia {
    public class functions{
    public:
        functions();
        long calculateSum(long a, long b){
            return a + b;
        }
    };
}

在我看来,我应该可以在C#中这样称呼它:

functions f = new functions();'
f.    //I do not get the method here, it is unknown

我尝试的另一件事是在Namespace级别创建方法:

//Definition in C++
namespace Formularia {
    static long calculatesum(long a, long b){
        return a + b;
    }
}

我不能将方法公开,它需要一个标识符。但我也不能打电话; Formularia.calculatesum(1, 2)。还尝试在这里删除静态。

解决方案可能很简单,但我更喜欢把它称为C#中的静态类。 (与参考示例一样)。有谁看到我做错了什么?

0 个答案:

没有答案