MFC遇到程序异常,编译没有关问题,运行过程随机异常,求高手指导
MFC遇到程序错误,编译没问题,运行过程随机错误,求高手指导!
30: _AFXCOLL_INLINE BYTE& CByteArray::ElementAt(int nIndex)
31: { ASSERT(nIndex >= 0 && nIndex < m_nSize);
004E40F7 push ebp
004E40F8 mov ebp,esp
004E40FA push ecx
004E40FB push ebx
004E40FC push esi
004E40FD push edi
004E40FE mov dword ptr [ebp-4],ecx
004E4101 cmp dword ptr [nIndex],0
004E4105 jl CByteArray::ElementAt+1Bh (004e4112)
004E4107 mov eax,dword ptr [this]
004E410A mov ecx,dword ptr [nIndex]
004E410D cmp ecx,dword ptr [eax+8]
004E4110 jl CByteArray::ElementAt+2Ch (004e4123)
004E4112 push 1Fh
004E4114 push offset _szAfxCollInl (005d289c)
004E4119 call AfxAssertFailedLine (004e6a50)
004E411E test eax,eax
004E4120 je CByteArray::ElementAt+2Ch (004e4123)
004E4122 int 3 //在这里停止,错误
004E4123 xor edx,edx
------解决方案--------------------
你保证你代码中m_bytearray数组下标的这些操作len-1, len-2, len-3, len-4都没问题???
------解决方案--------------------
当从串口读取数据的长度len是1、2、3时会出问题,需要考虑这种情况。
30: _AFXCOLL_INLINE BYTE& CByteArray::ElementAt(int nIndex)
31: { ASSERT(nIndex >= 0 && nIndex < m_nSize);
004E40F7 push ebp
004E40F8 mov ebp,esp
004E40FA push ecx
004E40FB push ebx
004E40FC push esi
004E40FD push edi
004E40FE mov dword ptr [ebp-4],ecx
004E4101 cmp dword ptr [nIndex],0
004E4105 jl CByteArray::ElementAt+1Bh (004e4112)
004E4107 mov eax,dword ptr [this]
004E410A mov ecx,dword ptr [nIndex]
004E410D cmp ecx,dword ptr [eax+8]
004E4110 jl CByteArray::ElementAt+2Ch (004e4123)
004E4112 push 1Fh
004E4114 push offset _szAfxCollInl (005d289c)
004E4119 call AfxAssertFailedLine (004e6a50)
004E411E test eax,eax
004E4120 je CByteArray::ElementAt+2Ch (004e4123)
004E4122 int 3 //在这里停止,错误
004E4123 xor edx,edx
------解决方案--------------------
你保证你代码中m_bytearray数组下标的这些操作len-1, len-2, len-3, len-4都没问题???
------解决方案--------------------
当从串口读取数据的长度len是1、2、3时会出问题,需要考虑这种情况。