2011-03-09 173 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

回答