0

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

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 datastruct!

4

1 回答 1

1

我想你需要把它变成一个ref class.

public ref class Data{
    public:
    int x;
}

C# 无法Data以您现在的方式构建。它不在托管堆上。ref将使其显示在托管堆上。如果您想Data保持不受管理,则必须编写一个包装器。

于 2013-03-11T19:06:32.503 回答