有两个单独的项目正试图像这样进行通信:
我在 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/