当前位置: 代码迷 >> WinCE >> 下面的代码调试时,会出现Data Abort的异常?麻烦各位大侠看下
  详细解决方案

下面的代码调试时,会出现Data Abort的异常?麻烦各位大侠看下

热度:14   发布时间:2016-04-28 13:05:17.0
下面的代码调试时,会出现Data Abort的错误?麻烦各位大侠看下。
CMainFrame *pMainWnd = (CMainFrame *)AfxGetApp()->m_pMainWnd;
//g_pHandle为全局变量
CWnd *pWnd = pMainWnd->FormHandlePemenent(g_pHandle);
CString rString = L"";
CRuntimeClass *prt = NULL;

prt = pWnd->GetRuntimeClass();
rString = CString (prt->m_lpszClassName());

CString sClassName[3] = { 
L"CDataBaseWindow", L"CLogWindow", L"COperationWindow" 
}; 

int i; 
int iWindowTypeIndex = 0; 
for(i = 0; i < 3; i++) 

  if( 0 == rString.Compare(sClassName[i]) ) 
  { 
  iWindowTypeIndex = i; 
  break; 
  } 


switch(iWindowTypeIndex) 

  case 0: 
  ((CDataBaseWindow *)pWnd)->OnDo(); 
  break; 
  case 1: 
  ((CLogWindow*)pWnd)->OnDo(); 
  break; 
  case 2: 
  ((COperationWindow*)pWnd)->OnDo(); 
  break; 
}

后面,根据调试信息Data Abort给出的地址信息,查找,发现这段代码if( 0 == rString.Compare(sClassName[i]) ) 有问题,还有switch处理部分的类型强制转换也有问题。为什么?请各位大侠指点。

------解决方案--------------------
单步调试呢,看不到错误吗?
------解决方案--------------------
先把有成为的代码屏蔽掉
  相关解决方案