CMainFrame::OnClose()函數中不能調用wcsncpy()函數,不然會造成內存訪問出錯


1、出現:“Run-Time Check Failure #2 - Stack around the variable 'puf' was corrupted”,最後發定義存放讀寫的TCHAR puf[20]數組從類函數裏的局部變量放到類的成員變量中就好了,參考:點擊打開鏈接

2、

void CMainFrame::OnClose()
{	
     TCHAR temp[20];
     CMainFrame* pMW=(CMainFrame*)AfxGetApp()->m_pMainWnd;
    bool success=pMW->ReadPassword(temp,20); 
    wcsncpy(temp,(LPCTSTR)Password,sizeof(temp));//ReadPassword此函數主要是調用ReadFile()讀取長度爲20的文件數據,並把數據保存到temp中	
   if(!wcscmp(cPassword,temp))
   {
     return true;
   }
   return false;
}

經過調試出現:到wcsncpy()之後會把temp讀取到的數據給清空了,並且在成功運行之後也會出現成內存訪問出錯,在程序別的地方進行測試使用之後發現wcsncpy()這塊內容,沒有問題,wcsncpy()函數不能在CMainFrame::OnClose()中進行使用(難道在OnClose()不能進行內存操作),具體原因還未知,暫時先記錄這問題

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章