当使用pinvoke从c#代码调用时,非托管c++dll何时从内存卸载
本文关键字:c++dll 内存 何时 卸载 pinvoke 调用 代码 | 更新日期: 2023-09-27 18:24:17
我在C++中有Sample.dll,就像这样,
extern "C" __declspec(dllexport) int func()
{
return 100;
}
我从C#调用这个
[DllImport("SampleCPP.dll")]
public static extern int func();
我想知道当这个C#应用程序调用函数func()时,Sample.dll什么时候会从内存中卸载;?
第一次调用非托管DLL中的函数时(从C#或其他非托管代码),非托管DLL将加载到进程中,并且在加载它的AppDomain被销毁之前不会卸载。在一个典型的程序中,您只有一个AppDomain,因此当进程终止时,它将被卸载。