我C編碼的一個程序,使用NX打開C庫。我必須將它編譯爲.dll文件,並將其作爲32位計算機上的32位.dll文件運行,效果非常好。然而,當我把相同的代碼在Visual Studio 64位計算機上,並指定其編譯爲64位,和我運行程序,它崩潰上釋放一些內存一條線。當我爲64位版本註釋掉該行時,它運行良好。 NX Open文檔指出這是我應該釋放的內存。64位版本的DLL免費在內存中崩潰; 32位不
我的問題是這樣的:是什麼原因造成的?爲什麼編碼完全相同的程序會在64位機器上的64位版本上免費使用內存,而在32位機器上則不會使用32位版本?這是我應該預料到的嗎?我做了一些我可以預防的錯誤嗎?或者它是一個更大問題的症狀?
版本信息:我使用Visual Studio 2005中,NX 5.0.6.3中,Windows XP SP3
對於任何碰撞,你需要在崩潰(異常,如訪問衝突)的位置來檢查調用堆棧。除了代碼中的錯誤之外的原因,細節取決於例外細節。 –
有各種各樣的這種可能的解釋,但最有可能的是,你投一個指向32位整數,從而截斷了。在我們可以更具體地幫助之前,您需要縮小它的範圍。 –
謝謝...然後,我會在獲取它時添加更多信息。 – Rae