//CString RequestDataBAK;
//CString RequestData;void CAsdfDlg::OnButton()
{
if (RequestDataBAK.GetLength() <= 0)
{
  CtransInf strTrace;
int nRet = -1;
RequestData.Replace(RequestData.Mid(11,1), "D");
strTrace.SetRequestData(RequestData);
nRet = strTrace.DoModal();
if (IDOK != nRet)
{
this->OnCancel();
return;
}
RequestDataBAK = strTrace.GetRequestData();
}//执行到这里就报错
……
……
……
……
……
}

解决方案 »

  1.   

    GetRequestData函数中,是不是有对该对话框的控件的操作?有则死!
      

  2.   

    RequestDataBAK = strTrace.GetRequestData();
    这个里面某个句柄为空
      

  3.   

    CString CtransInf::GetRequestData()
    {
    CString ReturnData;
    ReturnData.Format("%05s%06s%01s%012s%08s%08s%015s%06s", stInput.aaID, stInput.bbId, stInput.ccType,stInput.ddam, stInput.eeNo, stInput.ffDate,stInput.ggId, stInput.Backup);
    return ReturnData;
    }
      

  4.   

    GetRequestData()
    只是把自己想要的数据重新格式化一下,然后就返回了。
      

  5.   

    ReturnData.Format("%05s%06s%01s%012s%08s%08s%015s%06s", stInput.aaID, stInput.bbId, stInput.ccType,stInput.ddam, stInput.eeNo, stInput.ffDate,stInput.ggId, stInput.Backup);
    stInput中的内容都是字符串类型?
      

  6.   

    有可能是CtransInf strTrace对象销毁时出错。查看下Ctransinf类的析构函数和OnDestory()函数是否有问题。
      

  7.   

    我没有重写CtransInf类的析构函数,直接用系统默认的。
      

  8.   

    RequestDataBAK = strTrace.GetRequestData();
     我感觉是这句话 我是新手  也不会分析的很透彻 不好意思啊
      

  9.   


    这个函数有问题。 format不是都是%s 的, 比如float是%f, int和BOOL是%d. 看你的变量命名应该不会都是字符串。 呵呵。