我在C ++中有像这样的Sample.dll,
extern "C" __declspec(dllexport) int func()
{
return 100;
}
并从C#中调用此
[DllImport("SampleCPP.dll")]
public static extern int func();
我想知道当这个C#应用程序调用函数func()时,Sample.dll何时会从内存中卸载; ?
答案 0 :(得分:3)
非托管DLL将在第一次调用其中的函数时(从C#或从其他一些非托管代码中)加载到进程中,并且在加载它的AppDomain被销毁之前不会被卸载。在典型的程序中,您只有一个AppDomain,因此当进程终止时它将被卸载。