MFC 7.1 以降,AfxThrowInvalidArgException が呼ばれるようになっている
C:\Program Files\Microsoft Visual Studio\VC98\MFC\Include\AfxColl.inl Line 96
_AFXCOLL_INLINE DWORD& CDWordArray::ElementAt(int nIndex)
{ ASSERT(nIndex >= 0 && nIndex < m_nSize);
return m_pData[nIndex]; }
C:\Program Files\Microsoft Visual Studio 8\VC\atlmfc\include\AfxColl.inl Line 126
_AFXCOLL_INLINE DWORD& CDWordArray::ElementAt(INT_PTR nIndex)
{ ASSERT(nIndex >= 0 && nIndex < m_nSize);
if( nIndex < 0 || nIndex >= m_nSize )
AfxThrowInvalidArgException();
return m_pData[nIndex]; }
—————————
App
—————————
無効な引数が発生しました。
—————————
OK
—————————
nIndex が配列の範囲を超えている場合に ASSERT .
2010/06/15 追記
VC8 AtlSimpStr.h Line 389
XCHAR operator[]( __in int iChar ) const
{
ATLASSERT( (iChar >= 0) && (iChar <= GetLength()) ); // Indexing the ” is OK
if( (iChar < 0) || (iChar > GetLength()) )
AtlThrow(E_INVALIDARG);
return( m_pszData[iChar] );
}
—————————
App
—————————
パラメータが間違っています。
—————————
OK
—————————