C# 似乎应该说是 .NET 的“模块”结果也都还是 DLL 吧?
C# 怎么看到的就是 using 这玩意,和 C/C++ 的 #include 一样,编译期的东西,连那个 DllImport 似乎也是。
动态库没能动起来就是,而只是静态加载动态库。没有看到 LoadLibrary() 及 FreeLibrary() 对应的东西,没看到动态库动起来了。
C# 怎么看到的就是 using 这玩意,和 C/C++ 的 #include 一样,编译期的东西,连那个 DllImport 似乎也是。
动态库没能动起来就是,而只是静态加载动态库。没有看到 LoadLibrary() 及 FreeLibrary() 对应的东西,没看到动态库动起来了。
一种是显式加载,也就是需要时用 LoadLibrary() 加载,不需要时可用 FreeLibrary() 卸载。
难道我这也会理解错,难道我以前写那些 C/C++ 都是错误代码?请楼上指教。
我所说的动起来也就是说运行期加载卸载,也就是 C/C++ 中的显式加载。需要的时候 LoadLibrary() 不需要的时候 FreeLibrary() 。
因为养成了做事擦屁股的习惯,所以对 C# 表示困惑,垃圾收集器也只能处理变量而已,那动态库问题又是怎么解决的?
Type asType = asForm .GetType("MyTest.Main.Form1");MyTest.Main为项目名称
Form1为要使用的项目下的窗体对象不知道我这么说你明白吗?你想动态的 在你用的时候,去实例你用的动态库,可模仿这个来写
AssemblyInfo.cs
你自动添加引用,程序自己生成了这个,
如果你想动态 加载,那就是 把这个类里的东西拿到你 动态加载的地方,也是就反射的应用
.NET 无论怎样都有动态模块机制吧?无论叫什么,反正就是这个意思,也就是动态库的那个意思,对应产物。我只想知道 C# 如何卸载它的动态模块。我要的不是 C# 如何加载 *.dll 文件如何卸载 *.dll 文件,而是指它自己的动态模块,它是如何管理的。垃圾收集器我只听过回收变量空间的,想听却没能听到有关回收动态模块(还是不用动态库了,免得又让诸位感觉晦涩)空间的。
我现在的感觉就像是,我只用一下子的东西老占着我的内存,因为我不确定 C# 是否能自动卸载不用的模块,如果能,它又是什么原理。OS 的缓存机制?我只想到这个可能而不确定的答案。
这才是我要的答案