Давайте предположим следующую ситуацию:Передача неуправляемый указатель на неуправляемый объект в управляемом классе в 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)
то вектор пуст в неуправляемом коде (например, 4 элемента в C++/CLI и 0 элементы после перехода к a
.
Что такое правильный способ сделать это?
Там слишком много кода не хватает здесь, чтобы сказать наверняка, что это неправильно. является неуправляемого C++ код части одного и того же модуля, что и Код C++/CLI, вызывающий его, или вы пытаетесь передать коллекции STL в DLL границы (очень плохая идея)? –
@Ben, да, именно я хотел передать коллекцию STL между DLL. Наконец я сдался и сделал обходной путь pin_ptr :) – Jamie