以下是我出错的代码:
void CMyView::OnDblickSel()
{
// TODO: Add your command handler code here
CFileDialog m_ImportDlg(TRUE,"ped","*.ped",
OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY |
OFN_PATHMUSTEXIST | OFN_READONLY |OFN_SHAREAWARE,
"PED file List(*.ped)|*.ped|All Files (*.*)|*.*||");
m_ImportDlg.m_ofn.lpstrTitle="Import Picture Data";
if(m_ImportDlg.DoModal()==IDOK)
{
CString SelFile =m_ImportDlg.GetPathName();//自定义CString对象
CMyImportDlg m_ImportPICDlg(SelFile,this);//
if(m_ImportPICDlg.DoModal()==IDOK)
{
CMyAntherDlg SpDlg(SelFile);
if(SpDlg.DoModal()==IDOK)
{
if(SpDlg.pDioLib!=NULL &&SpDlg.pHeadPattern!=NULL
&& SpDlg.pHeadUNITBLK!=NULL)
{
.........................
}
}
}
}
}// this line error occur
错误表现是当运行至此函数最后一行时,出现内存访问非法.跟踪代码发现是在调用CString析构函数时出错.
但我奇怪运行至这,怎么会还有CString对象需要销毁呢?难道是我自定义的SelFile吗?
void CMyView::OnDblickSel()
{
// TODO: Add your command handler code here
CFileDialog m_ImportDlg(TRUE,"ped","*.ped",
OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY |
OFN_PATHMUSTEXIST | OFN_READONLY |OFN_SHAREAWARE,
"PED file List(*.ped)|*.ped|All Files (*.*)|*.*||");
m_ImportDlg.m_ofn.lpstrTitle="Import Picture Data";
if(m_ImportDlg.DoModal()==IDOK)
{
CString SelFile =m_ImportDlg.GetPathName();//自定义CString对象
CMyImportDlg m_ImportPICDlg(SelFile,this);//
if(m_ImportPICDlg.DoModal()==IDOK)
{
CMyAntherDlg SpDlg(SelFile);
if(SpDlg.DoModal()==IDOK)
{
if(SpDlg.pDioLib!=NULL &&SpDlg.pHeadPattern!=NULL
&& SpDlg.pHeadUNITBLK!=NULL)
{
.........................
}
}
}
}
}// this line error occur
错误表现是当运行至此函数最后一行时,出现内存访问非法.跟踪代码发现是在调用CString析构函数时出错.
但我奇怪运行至这,怎么会还有CString对象需要销毁呢?难道是我自定义的SelFile吗?
解决方案 »
- 用DriverStudio在vc++6.0集成开发环境下出现的错误??
- 那种在网站注册成功后,网站自动往我的msn好友发送邮件是怎么实现的。
- 奇怪的变量地址(内存管理方面)
- 我使用Vfw创建一个AVI时,怎么压缩音频流了???
- 祝贺得分超过2000
- 位图操作:复制与比较
- who can tell me ?如何在我分割区内调用其他 EXE(DLL)
- 请教一个组件(COM)的问题,非常急!
- mfc
- 我绝望了,难道没有办法吗!谁能令我感动一次呢?谢谢
- winpcap的include、lib里的文件已全拷至vc98下同名目录,为何还不认识sockaddr_storage?
- 如何让其他的进程调用我做的一个dll?
?????
CMyAntherDlg SpDlg(SelFile);
//我重载的dlg类构造函数,将CString对象值传给myimportdlg类和myantherdlg类.
由于同一个CString对象两次传递给了不同类对象.会不会这引起错误呢?
但类构造函数我是这样处理的:
CSpDlg::CSpDlg(CString FileName,CWnd* pParent /*=NULL*/)
: CDialog(CSpDlg::IDD, pParent)
{
FilePath.Format("%s",FileName);//FilePath为此类成员
}
我想这样不会引起错误吧。
你认为是哪个CString对象被破坏呢?