帮忙看这段代码?

gao_hui 2006-10-20 02:23:53
void __fastcall TForm1::Button5Click(TObject *Sender)
{
if(SaveDialog1->Execute())
{
Variant Ex,Wb,Sh;
AnsiString t;
char c = 0x9;
Ex = Variant::CreateObject("Excel.Application");
Ex.OlePropertyGet("Workbooks").OleFunction("Add");
Wb = Ex.OlePropertyGet("ActiveWorkbook");
Sh = Wb.OlePropertyGet("Worksheets",1);
TStringList* SL = new TStringList();
t = "";
for(int i=0; i<DBGrid1->Columns->Count; i++)
{
t += DBGrid1->Columns->Items[i]->Title->Caption.c_str();
t += c;
}
SL->Add(t);
DBGrid1->DataSource = NULL;
ADOTable1->First();
for(int i=0; i<ADOTable1->RecordCount; i++)
{
for(int j=0; j<DBGrid1->Columns->Count; j++)
{
t += ADOTable1->Fields->FieldByName(DBGrid1->Columns->Items[j]->FieldName)->AsString;
t += c;
}
SL->Add(t);
ADOTable1->Next();
}
TClipboard* cp = new TClipboard();
cp->AsText = SL->Text;
Sh.OleProcedure("Paste");
cp->Clear();
delete SL;
delete cp;
Wb.OleProcedure("SaveAs",SaveDialog1->FileName.c_str());
Wb.OleProcedure("Close");
DBGrid1->DataSource = DataSource1;
}

为什么我执行后内存由300多M长到590多M,?????然后就内存不足了。。
...全文
92 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
MEFULEU 2006-10-20
  • 打赏
  • 举报
回复
嘿嘿,增加你的虚拟内存或者物理内存吧,ole就是费内存

13,825

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧