У меня есть приложение библиотеки C ++, которое общается с сервером C ++, и я создаю вектор своих пользовательских объектов класса. Но мое консольное приложение Cpp / CLI (которое взаимодействует с собственным C ++) выдает ошибку нарушения памяти, когда я пытаюсь вернуть свой пользовательский класс obj vector.
Пример кода -
В моем родном классе C ++ -
std::vector<a> GetStuff(int x)
{
-- do stuff
std::vector<a> vec;
A a;
vec.push_back(a);
--- push more A objs
return vec;
}
В моем классе Cpp / CLI
public void doStuff()
{
std::vector<a> vec;
vec = m_nativeCpp->GetStuff(4); // where nativeCpp is a dynamically allocated class in nativecpp DLL, the app throws up a memory violation error here!
}
точное сообщение об ошибке
Произошло необработанное исключение типа 'System.AccessViolationException' в CLIConsole.exe - это мой консольный проект cpp / CLI
Дополнительная информация: Попытка чтения или записи в защищенную память. Это часто указывает на то, что другая память повреждена.