【发布时间】:2012-11-24 15:44:34
【问题描述】:
我的问题是我有一个无法修改的 32 位 DLL。在正常操作下,DLL 有时可能需要大约 1.5 gigs 左右的内存。
当我使用 C++/非托管代码测试程序时,DLL 只会在大约 2 gigs 时耗尽内存。这是预期的,因为这是 32 位进程可用的最大大小。因此,DLL 在正常运行下运行良好。
当我从本身占用大约 250 MB 的 C# 应用程序 P/Invoke DLL 时,当整个进程达到大约 1.4 gigs 时,DLL 会出错。我的问题是 P/Invoke 是否为 32 位进程提供了更少的内存供使用?有什么办法可以给它更多吗?
编辑:P/Invoked 函数实际上是从我的主程序集引用的 C# 程序集中调用的。不确定这是否有任何相关性。
【问题讨论】:
标签: c# memory pinvoke dllimport