2011-03-09 174 views
0

假设以下情况:传递非托管的指针非托管对象在托管类C++/CLI

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

typedef std::vector<int>MyAnotherType; 

我想传递一个指针到std ::矢量分配(并以C++/CLI代码填充到非托管C++中。如果我只是写a->AnotherMethod(b)那么向量是在非托管代码(例如C++/CLI 4个元素传递给a后0元素空。

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

+1

有太多的代码在这里失踪肯定地说什么是错的。是托管C++同一模块的部分代码C++/CLI代码调用它,或者你是否试图通过DLL传递STL集合边界(一个非常糟糕的主意)? – 2011-03-10 01:29:33

+0

@Ben,是的,我正好想要在DLL之间传递STL集合。最后我放弃了,做了一个pin_ptr解决方法:) – Jamie 2011-03-10 08:51:17

回答