我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