C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[38929] 엑셀 시트에서 셀의 데이터 저장/읽기 중 메모리 증가..
이현진 [cyberpd] 1760 읽음    2005-01-26 16:47
엑셀의 수식을 이용하기 위해서 다음과 같이 이용중입니다.

class CEXCEL
{
public:
	TExcelApplication*	m_pExcelApplication;
	ExcelWorksheetPtr	m_pExcelSheet;
	ExcelWorkbookPtr	m_pExcelWorkBook;
    //...
};



TVariant CEXCEL::GetExcelItem(TVariant& CellCol, TVariant& CellRow)
{
	return m_pExcelSheet->Cells->get_Item(CellRow, CellCol);
}
//---------------------------------------------------------------------------

void CEXCEL::SetExcelItem(TVariant& CellCol, TVariant& CellRow, TVariant& Value)
{
	m_pExcelSheet->Cells->set_Item(CellRow, CellCol, Value);
}
//---------------------------------------------------------------------------

void CEXCEL::OpenExcel(const char* pFileName, bool bShowWindow)
{
	try {
		if(m_pExcelApplication!=NULL) {
			CloseExcel();
		}

		m_pExcelApplication=new TExcelApplication(NULL);
		m_pExcelApplication->ConnectKind=ckRunningOrNew;
		m_pExcelApplication->AutoQuit=true;
		m_pExcelApplication->Connect();
		if(bShowWindow) {
			m_pExcelApplication->set_Visible(0,true);
		}

		m_pExcelWorkBook=m_pExcelApplication->Workbooks->Open( TVariant(pFileName), TNoParam(),
			TNoParam(), TNoParam(), TNoParam(), TNoParam(), TNoParam(),	TNoParam(),
			TNoParam(), TNoParam(), TNoParam(), TNoParam(), TNoParam(), m_nExcelLCID );

		m_pExcelSheet=m_pExcelWorkBook->ActiveSheet;
	} catch(const Exception& E) {
		CloseExcel();
		throw E;
	}
}
//---------------------------------------------------------------------------



그런데, 엑실 시트의 ExcelWorksheetPtr->Cells->set_Item, ExcelWorksheetPtr->Cells->get_Item 함수를
호출할 때 마다 개발중인 프로그램과 EXCEL.EXE 프로세스의 메모리가 지속적으로 증가합니다.
프로그램이 10분만 있으면 가상메모리 부족으로 시스템이 죽습니다.

추측으로는 원인이 COM 호출 중에 새로운 인터페이스를 생성하면서 발생하는 문제같습니만,
저런 경우에 해결할 수 있는 방업이 없을까요?

+ -

관련 글 리스트
38929 엑셀 시트에서 셀의 데이터 저장/읽기 중 메모리 증가.. 이현진 1760 2005/01/26
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.