c# - 是否可以在 C# 中从 native C++ 类创建变量?

标签 c# c++ .net visual-c++ c++-cli

有两个单独的项目正试图像这样进行通信:
我在 C++ CLI 中有以下 native

public class Data{
    public:
    int x;
}

导入是指在我的 C# 项目中添加了对 C++ CLI 项目的引用。
另一方面,我将这个 C++ CLI 项目导入到我的 C# 项目中,在 C# 中我想做的是:

Data k = new Data() //It's ok till here
int b = k.x; //The field x is not visible here !

有什么方法可以强制 C# 或 C++ CLI 共享字段和方法吗?
编辑:C# 也将 class data 假定为 struct!

最佳答案

我想您需要将其设为 ref class

public ref class Data{
    public:
    int x;
}

C# 无法按照您现在的方式构造Data。它不在托管堆上。 ref 将使它显示在托管堆上。如果您希望 Data 保持非托管状态,则必须编写一个包装器。

关于c# - 是否可以在 C# 中从 native C++ 类创建变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15346381/

相关文章:

c# - KnockoutMVC 提交按钮不起作用

c# - 反射真的那么慢以至于我不应该在有意义的时候使用它吗?

c# - 我如何诊断为什么 asp.net MVC 站点在一台服务器上运行但在另一台服务器上运行不正常?

c# - 使用Linq循环遍历所有控件只得到第一个控件

c# - 比较 .NET 中的字符串

c++ - Win32 : Why is full-screen mode buggy?

处理 STL 容器时的 C++ 类专门化

c# - WPF ListView SelectedItems 数据绑定(bind) MVVM

C# 从 KnownColor 中删除较暗的颜色

c++ - 标准是否使用多余的大括号(例如 T{{{10}}})定义列表初始化?