作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个用 .NET 4.0 编写的应用程序,需要在内存中加载 native DLL(用 C 编写)。
目前我正在使用 P/Invoke 调用 LoadLibrary 传递 DLL 所在的路径。
这行得通,但由于这个 DLL 来自数据库,我想知道是否可以通过流加载它,从而避免将 DLL 存储在文件系统中的某个地方。
最佳答案
Windows 不允许这样做, native 代码必须始终从磁盘上的文件加载。这是操作系统设计方式的核心,可执行文件通过内存映射文件映射到内存中。这需要一个文件。
它仅适用于纯托管代码 (Assembly.Load(byte[]),因为 IL 是数据,而不是 native 代码。
避免将 DLL 存储在数据库中,您通常不能将它们写入磁盘,因为 UAC 或病毒扫描程序或 IT 人员对不知从何处出现的可执行文件非常不满意。它可以在您的开发机器上运行,但在用户机器上的可能性很低。
关于.net - 如何从流中加载非托管 DLL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10649531/
我正在开发一个需要能够平均三个数字的 Facebook 应用程序。但是,它总是返回 0 作为答案。这是我的代码: $y = 100; $n = 250; $m = 300; $number = ($y
我只是无法弄清楚这一点,也找不到任何对我来说有意义的类似问题。我的问题:我从数据库中提取记录,并在我的网页上以每个面板 12 条的倍数显示它们。因此,我需要知道有多少个面板可以使用 JavaScrip
我是一名优秀的程序员,十分优秀!