C#如何调用C++的类
时间: 2023-09-17 17:14:37 浏览: 119
C#调用C++中的类
5星 · 资源好评率100%
在 C# 中调用 C++ 的类可以使用 C++/CLI(Managed C++)来实现。C++/CLI 是一种混合语言,可以同时使用 C++ 和 C#。通过创建一个 C++/CLI 类,将 C++ 类包装为公共成员,并在 C# 中直接调用该类的方法。
以下是一个示例:
```cpp
// C++ Class
class MyCppClass
{
private:
int value;
public:
MyCppClass(int v) : value(v) {}
int GetValue()
{
return value;
}
};
```
```cpp
// C++/CLI Wrapper
#pragma managed
#include "MyCppClass.h"
public ref class MyCppWrapper
{
private:
MyCppClass* cppClass;
public:
MyCppWrapper(int v)
{
cppClass = new MyCppClass(v);
}
~MyCppWrapper()
{
delete cppClass;
}
int GetValue()
{
return cppClass->GetValue();
}
};
```
```c#
// C# 使用 C++/CLI Wrapper
class Program
{
static void Main(string[] args)
{
MyCppWrapper wrapper = new MyCppWrapper(42);
int value = wrapper.GetValue();
Console.WriteLine(value); // 输出 42
}
}
```
在这个示例中,我们创建了一个 C++ 类 `MyCppClass`,并使用 C++/CLI 创建了一个包装器类 `MyCppWrapper`。在 `MyCppWrapper` 中,我们实例化了 `MyCppClass` 的对象,并将其封装在公共成员方法中,以供 C# 调用。
请注意,C++/CLI 项目需要将 `Common Language Runtime Support` 设置为 `/clr`。另外,如果 C++ 类有其他依赖项,需要在 C++/CLI 项目中引用这些依赖项。
使用 C++/CLI 可以方便地在 C# 中调用 C++ 的类和方法,但需要注意确保 C++ 类的可访问性和正确的函数签名,以便在 C# 中正确使用。
阅读全文