32位应用程序在32位操作系统上失败但在64位计算机上运行

时间:2016-05-30 06:50:44

标签: .net memory memory-leaks 32bit-64bit ram

我们有32位.net应用程序正在调用一些第三方dll [c / C ++]。 在具有2GB RAM的32位操作系统上,我们不断获得"尝试读取或写入受保护的内存"调用dll后出错。

在具有4GB RAM的64位操作系统上,成功率为50% 在具有4GB RAM的32位操作系统上,成功率为100%
因此,似乎问题是由于记忆力不足。 ,但我们观察到,虽然应用程序在2GB内存上运行,并且内存可用,但我们仍然在尝试读取或写入受保护的内存"。
任何人都可以建议,即使内存可用,出了什么问题?
是地址空间问题吗?我们尝试过LARGEADDRESSAWARE,但遇到同样的问题。

1 个答案:

答案 0 :(得分:0)

最后,找出问题所在。 我的应用程序有一个调用第三方c / c ++ dll的线程。 如果我删除此线程并执行相同的代码jn序列,那么它在32位上工作。 似乎32位机器与.net中的64位相比具有不同的线程模型。 最后,我们设法修复它,谢谢大家。