2016-05-30 7 views
-1

サードパーティのDLL [c/C++]を呼び出している32ビットの.netアプリケーションがあります。 2GBのRAMを搭載した32ビットOSでは、dllを呼び出した後も、「保護されたメモリの読み取りまたは書き込みを試みました」というエラーが表示されます。 4ギガバイトのRAMを搭載した64ビットOS上で
しかし
が、成功率は50%4ギガバイトのRAM、成功率と32ビットOS上で
は、したがって、100%
であるが、問題では不十分であるメモリが原因であると思われます。 、
しかし、アプリケーションは2GBのメモリ上で実行されており、メモリは利用可能であるが、「保護されたメモリを読み書きしようとしている」ということに気付きました。
メモリが利用可能であっても何が問題になるのでしょうか?
アドレス空間に問題はありますか?
LARGEADDRESSAWAREを試しましたが、同じ問題が発生しました。32ビットアプリケーションが32ビットOSで動作していますが、64ビットマシンで動作しています

答えて

0

最後に、問題が何かを発見しました。 私のアプリケーションには、サードパーティのc/C++ dllを呼び出すスレッドが1つあります。 このスレッドを削除して同じコードのjnシーケンスを実行すると、32ビットで動作します。 32ビットマシンは、64ビットと比較して、異なるスレッドモデルを持っているようです。 最後に、私たちはそれを修正することができました。ありがとうございました。

関連する問題