C++ 从MFC程序卸载dll文件

C++ 从MFC程序卸载dll文件,c++,windows,winapi,dll,mfc,C++,Windows,Winapi,Dll,Mfc,我有一个MFC程序,即使我关闭了程序,它也不会消失,仍然显示在任务管理器中。当我查看调用堆栈时,我看到一些dll文件只被加载,而没有被卸载 退出程序时,是否有办法卸载所有dll文件?因此,exe将不会显示在任务管理器中 我在类的顶部声明了一些变量: vtkPoints *newPts = vtkPoints::New(); vtkPoints *newPtsSuction = vtkPoints::New(); CArray <double,double> ScalarV

我有一个MFC程序,即使我关闭了程序,它也不会消失,仍然显示在任务管理器中。当我查看调用堆栈时,我看到一些dll文件只被加载,而没有被卸载

退出程序时,是否有办法卸载所有dll文件?因此,exe将不会显示在任务管理器中

我在类的顶部声明了一些变量:

vtkPoints *newPts = vtkPoints::New();
vtkPoints *newPtsSuction  = vtkPoints::New();     
CArray <double,double> ScalarValues_pressure;
CArray <double,double> ScalarValues_suction;
CArray <double,double> ScalarValues;
vtkPoints*newPts=vtkPoints::New();
vtkPoints*newPtsAction=vtkPoints::New();
卡雷标度值和压力;
卡雷标度值和吸力;
卡雷标度值;

并将值添加到另一个函数中,然后在另一个函数中直接使用变量。

首先的问题不是DLL卸载。您的应用程序冻结在某种死循环中,或者无法正确完成终止。修复此问题后,库将自动卸载,进程将继续,包括从任务列表中卸载。

线程堆栈-检查应用程序正在执行的操作,以及为什么它不会在响应关闭请求时销毁所有内容。您可能还希望在
WM_CLOSE
WM_DESTROY
消息处理程序(例如顶级窗口中的
OnClose
OnDestroy
)中设置断点,并从中逐步查看代码可能被卡住的位置。当应用程序关闭时,操作系统会自动卸载DLL。你试图用错误的方法解决这个问题。真正的问题是应用程序代码中的某些东西阻止它关闭。在没有看到代码的情况下不可能说出它是什么。考虑更新你的问题,谢谢Cody Gray。我已经更新了问题。