0
如何刪除託管對象在C++/cli中? 它有點特別。刪除託管對象C++/cli
一個例子:
//.h
ref class Myclass
{
public:
static Myclass^ GetInstance(void);
private:
static Myclass ^m_hInstance;
}
//.cpp
Myclass^ Myclass::GetInstance(void)
{
if (m_hInstance == nullptr)
{
System::Windows::MessageBox::Show("mknew");
m_hInstance = gcnew Myclass();
}
return m_hInstance;
}
.
.
.
,所以我可以在我所有的Win32 DLL函數
Myclass::GetInstance()->MyFunction();
是沒有任何問題的作品使用,但我需要「重啓」了 - 創建一個新的實例(並殺死舊) 我tryed:
- delete Myclass::GetInstance(); (outside)
- delete m_hInstance; (inside class with a shutdown function)
- added a (empty) ~Destructor
- Myclass::GetInstance()->Dispose() (this wont work, not a Member)
(和所有GC後::收集())
的唯一辦法是,設置
m_hInstance = nullptr;
,但舊的對象不會死,例如,舊的對象時打開的文件被鎖定,直到我退出應用程序。
如何使用close()等方法先進行清晰的清理? – deviantfan