在C ++ / CLI中将非托管指针传递给托管类中的非托管对象

时间:2011-03-09 17:03:33

标签: pointers c++-cli unmanaged mixed-mode unmanaged-memory

让我们假设以下情况:

class A
{
public:
  void MyMethod()
  {
    a->AnotherMethod(b);
  }
private:
  MyType* a;
  MyAnotherType* b;
};

typedef std::vector< int >MyAnotherType;

我想将一个指向std :: vector的指针传递给非托管C ++,该指针在C ++ / CLI代码中被分配(并填充)。如果我只是简单地写a->AnotherMethod(b),那么在非托管代码中向量是空的(例如,在传递给a之后,C ++ / CLI中的4个元素和0个元素。

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

尝试pragma managed and unmanaged

确保传递给DLL的类的定义是在非托管部分中定义的。