下面將源資料連續粘貼到很多行的代碼為啥記憶體會一直增加?有方法釋放記憶體嗎?
(不能整個Range的粘貼,必須這樣一行一行的)
for (long i = 0; i < 10000; i++)
{
//獲得目的Range
TargetRange2.AttachDispatch(sheet.get_Range(COleVariant(RowIndexNum), COleVariant(RowIndexNum)), TRUE);
//獲得整行
TargetRange2= TargetRange2.get_EntireRow();
//賦值
TargetRange2.put_Value2(testrange.get_Value2());
//釋放
TargetRange2.ReleaseDispatch();
//下一行
RowIndexNum++;
}
uj5u.com熱心網友回復:
TargetRange2.AttachDispatch(sheet.get_Range(COleVariant(RowIndexNum), COleVariant(RowIndexNum)), TRUE);TargetRange2 = TargetRange2.get_EntireRow(); //這里TargetRange2已經被改變
試試增加一個變數
//獲得目的Range
TargetRange2.AttachDispatch(sheet.get_Range(COleVariant(RowIndexNum), COleVariant(RowIndexNum)), TRUE);
//獲得整行
RangePtr TargetRange3 = TargetRange2.get_EntireRow();
//賦值
TargetRange3.put_Value2(testrange.get_Value2());
//釋放
TargetRange2.ReleaseDispatch();
uj5u.com熱心網友回復:
不是這個原因,把獲取行注釋掉,單單粘貼第一列,記憶體還是增加很快。
//獲得目的Range
TargetRange2.AttachDispatch(sheet.get_Range(COleVariant(RowIndexNum), COleVariant(RowIndexNum)), TRUE);
//獲得整行
// RangePtr TargetRange3 = TargetRange2.get_EntireRow();
//賦值
TargetRange3.put_Value2(testrange.get_Value2());
//釋放
TargetRange2.ReleaseDispatch();
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/78373.html
標籤:數據庫
上一篇:mfc 向excel 中插入圖片
下一篇:VLD 檢測MFC 記憶體泄露
