0
。我正在使用第三部分组件(TxTextControl)来构建文本控件。当我保存文档时,文件被创建,但大约一分钟后,我的应用程序崩溃上升读取访问错误0xFEEEFEEE,在ole32.dll。 这是我的代码,txtCtrl是我的组件:在我的MFC SDI应用程序中,我试图重写CDocument :: DoSave来保存我的文档,但我的MFC SDI应用程序中出现了错误0xFEEEFEEE
BOOL CEditorTxDoc::DoSave(LPCTSTR lpszPathName, BOOL bReplace)
{
CString path, nome;
VARIANT vt1, vt2, vt3;
POSITION pos = GetFirstViewPosition();
CEditorTxView *pView = (CEditorTxView*)this->GetNextView(pos);
VariantInit(&vt1);
vt1.vt = VT_INT;
vt1.intVal = -1;
VariantInit(&vt2);
vt2.vt = VT_INT;
vt2.intVal = 3;
VariantInit(&vt3);
vt3.vt = VT_BOOL;
vt3.boolVal = FALSE;
if (lpszPathName == NULL) {
CFileDialog fSaveDlg(FALSE);
fSaveDlg.m_pOFN->lpstrFilter = _T("File Tx (*.tx)");
fSaveDlg.m_pOFN->lpstrDefExt = _T("tx");
fSaveDlg.m_pOFN->lpstrTitle = _T("Salva documento");
fSaveDlg.m_pOFN->lpstrInitialDir = _T("c:");
if(fSaveDlg.DoModal()==IDOK)
{
path = fSaveDlg.GetPathName();
nome = fSaveDlg.GetFileName();
pView->txtCtrl.Save(path, vt1, vt2, vt3);
SetTitle(nome);
SetModifiedFlag(FALSE);
SetPathName(path);
}
} else {
pView->txtCtrl.Save(GetPathName(), vt1, vt2, vt3);
SetModifiedFlag(FALSE);
}
return TRUE;
}
调用堆栈终止在行ole32.dll!7734c99e(),并在反汇编istruction是:7734C99E mov ecx,dword ptr [eax] –
EAX值是FEEEFEEE –
我怎样才能找到我的代码中的问题? –