| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Visual C++/MFC/WTL > C++/CLI -> C# |
| Автор: cupper 21.6.2011, 19:32 | ||||
есть библиотека. написанная на C++/CLI, в ней есть класс X, с методами
где native это указатель на динамически выделенную память "С++шным выделятором" new. Есть код на C#, который создает экземпляр сего класса X.
getX() это тоже из библиотеки C++\CLI и там по средством вызова gcnew создается возвращаемый объект X. При завершении программы (когда происходит сборка мусора) вызывается финализер !X() и я получаю эксцепшен на попытку чтения записи защищенной памяти. Но если я в коде явно вызову x.dispose(), то я опять таки попадая в !X() корректно (без эксцепшенов) удаляю объект. Может мне кто прояснить ситуацию, я просто в С++/CLI вообще не секу. |