本文介绍了是否有可能在32位版本上不会出现在64位版本上出现的错误?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


是否有可能在使用非托管C ++的Visual Studio 2010上,在64位版本上出现的错误不会在32位版本(和Visa virsa)上复制.

Hi,
Is there a possibility that an error comming on 64bit build will not replicate on 32bit build(and visa virsa) on Visual studio 2010 with unmanaged C++.

推荐答案

{
  UINT_PTR uiDivider(0);
  for (;;) {
    UINT_PTR uiResult(4 / ++uiDivider);
  }
}

...这会导致64位执行崩溃:

...and this can crash an 64bit execution:

{
  class A {
    int m_iMember;
  public:
    A(int i = 0) : m_iMember(i) {}
    int GetMmber() const { return m_iMember; }
  } a;

  A* pA(&a);
  DWORD dwPointerStorage = static_cast<dword>(pA);
  pA = static_cast<a*>(dwPointerStorage);
  pA->GetMember(); // possible crash for 64bit :)
}</dword>



这篇关于是否有可能在32位版本上不会出现在64位版本上出现的错误?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-04 19:38