如何卸载托管c++;动态链接库?; A.DLL是一个本地C++ DLL,B.dll是一个托管C++ DLL。A.dll依赖于B.dll,因此加载A.dll时,B.dll会自动加载,但卸载A.dll后,B.dll仍会加载。只有A.dll依赖于B.dll,为什么B.dll不能卸载?如何卸载托管C++ DLL?我正在使用vs2010

如何卸载托管c++;动态链接库?; A.DLL是一个本地C++ DLL,B.dll是一个托管C++ DLL。A.dll依赖于B.dll,因此加载A.dll时,B.dll会自动加载,但卸载A.dll后,B.dll仍会加载。只有A.dll依赖于B.dll,为什么B.dll不能卸载?如何卸载托管C++ DLL?我正在使用vs2010,c++,visual-c++,c++-cli,managed-c++,C++,Visual C++,C++ Cli,Managed C++,谢谢一旦托管程序集被CLR加载,您将无法卸载该程序集。唯一的方法是终止AppDomain。CLR加载托管程序集后,无法卸载该程序集。唯一的办法是杀死AppDomain。Darin Dimmitrov是对的。要卸载程序集,必须创建单独的AppDomain,该AppDomain将负责与包含应用程序入口点的AppDomain分离(通常为exe文件)。对于更多内容,这些AppDomain-s必须仅交换字符串或值类型,否则您的B程序集最终将加载到两个AppDomain-s中,从而阻止您卸载B。Darin

谢谢

一旦托管程序集被CLR加载,您将无法卸载该程序集。唯一的方法是终止AppDomain。

CLR加载托管程序集后,无法卸载该程序集。唯一的办法是杀死AppDomain。

Darin Dimmitrov是对的。要卸载程序集,必须创建单独的AppDomain,该AppDomain将负责与包含应用程序入口点的AppDomain分离(通常为exe文件)。对于更多内容,这些AppDomain-s必须仅交换字符串或值类型,否则您的B程序集最终将加载到两个AppDomain-s中,从而阻止您卸载B。Darin Dimmitrov是正确的。要卸载程序集,必须创建单独的AppDomain,该AppDomain将负责与包含应用程序入口点的AppDomain分离(通常为exe文件)。对于更多的AppDAMIN -S必须只交换字符串或值类型,否则,B组件最终加载到AppDAME-S中,从而阻止您卸载B。我使用::FrielBrayAPI,显然卸载了托管C++ DLL,可以卸载,有风险吗?我使用::FrielBrayAPI,以明显地卸载托管C++ DLL,可以卸下,有风险吗?