代码如下:
        try
        {
         //创建WorksheetPtr对象
WorksheetPtr pWorksheet = ((WorksheetPtr)(get_ActiveSheet()));
ASSERT(NULL != pWorksheet); RangePtr pRange = pWorksheet->GetCells();
pRange->ClearContents();
//装载
pRange->LoadText(strFilePath, ",", VARIANT_FALSE, _bstr_t(L""));
}
catch (_com_error &e)
{
_bstr_t bstrDsc = e.Description();
const TCHAR* pchErrMsg = e.ErrorMessage();
CString strErrInfo;
strErrInfo.Format(_T("从txt文本中装载数据时出错,原因:%s, %s"),(LPCTSTR)bstrDsc,pchErrMsg);
AfxMessageBox(strErrInfo);
}
如上所示,LoadText为导入某txt文件的方法,并在owc控件中显示。
这里出现问题:调用LoadText(...)后,内存增加了10M(txt文件有20M),但owc控件退出时,却没释放这10M内存空间,请问各位大虾,这是什么原因?编译环境为VC,指针都采用的智能指针。

解决方案 »

  1.   

    pRange->LoadText(strFilePath, ",", VARIANT_FALSE, _bstr_t(L"")); 会不会有个 drop 之类的 函数 需要调用 才释放
      

  2.   

    ·双线主机 100M/35元/年,免费送数据库(自选MY/MSSQL)
    ·支持ASP+ASP.NET+PHP+HTML
    ·详情请访问:http://www.515dns.com
    ·QQ:287895593
      

  3.   

    (Graphics)g.Dispose();
                你的LoadText.Dispose();
      

  4.   

    RangPtr 与 Graphics没有关系啊
      

  5.   

    谢谢上面的回复,我最后发现是使用的OWC dll的问题,我之前使用的是比较老的MSOWC.dll,只有3M左右,估计是Office2000的;现在我改为owc10.dll或ocw11.dll都没有问题,这两个dll在office2003中有。