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
[4964] Re:한꼬마님....액셀에 대해서 질문요.....^^
한꼬맹이 [] 3054 읽음    2001-01-19 18:31
초짜 님이 쓰신 글 :
: 안녕하세요. 지난번에 한꼬마님께서 가르쳐 주신대로 액셀의 데이터를 가져와 잘 사용하고 있습니다. 다시 한번 감사... (--)(__)
: 한 가지 질문이 있는데요...
:
:     xlBooks.OleProcedure("Close") ;
:     xlApp.OleProcedure("Quit") ;
:
: 이 부분에 대한 질문입니다.
:
: 제가 windows 2000에 빌더4를 사용하는데,
: 액셀파일을 열어서 셀의 데이터를 그대로 스트링그리드로 가져온 다음 곧바로 닫아버리는데...
: 프로세스 뷰어로 보면 EXCEL.EXE 프로세스가 죽지 않고 그대로 떠 있습니다.
: 또 다른 파일을 열면 다시 EXCEL.EXE 프로세스가 또 하나 생기구여....
: 위 코드대로 하면 프로세스가 죽지않나요? 궁금해요....
:
: 그래서 임시방편으로 해본 방법이
: 1. EXCEL.EXE 프로세스가 파일을 열때마다 생겨서 xlApp.isEmpty()를 사용해서 해결했구요..
:    이 방법이 맞는지 --a
: 2. 프로세스가 죽지 않는 문제는 API 함수로 강제로 닫아버리라고 POSTMESSAGE를 사용했는데....
:    참고로 제 컴이 윈2000인데 메모리 참조에러가 발생하구요...(프로세스는 죽더라구요...)
:    98에서 테스트 하니까 잘못된 연산 어쩌구.....이러면서 에러나구요....이궁...--a
:
: 결론은 프로세스를 어떻게 에러없이 죽일수 있을지.....

안녕하십니까?

한꼬맹이 입니다.

엑셀개체가 메모리에서 안 없어 진다구요... 그럴리가 없는데요...

제가 엑셀개체 많이 다루어 봤는데.. 그런적은 없었는데요...

초짜님께서 뭐가 실수를 하셨느지 다음코드한번 테스트 해보세요..

저도 윈도우 2000 서버라서 테스트해보고 올립니다. 불러온 엑셀개체 프로세스

확실히 죽습니다.

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Variant Books, App;

  App  = Variant::CreateObject("Excel.Application");
  App.OlePropertySet("Visible", true);
  ShowMessage("엑셀개체 활성화");
  Books = App.OlePropertyGet("Workbooks");
  Books.OleProcedure("Add");
  ShowMessage("워크북 생성");

  if(!Books.IsEmpty()){
    Books.OleProcedure("Close");
    ShowMessage("워크북 종료");
  }

  if(!App.IsEmpty()){
    App.OleFunction("Quit");
    ShowMessage("엑셀 종료");
  }
}

그럼 참고하세요...

+ -

관련 글 리스트
4958 한꼬마님....액셀에 대해서 질문요.....^^ 초짜 2860 2001/01/19
4964     Re:한꼬마님....액셀에 대해서 질문요.....^^ 한꼬맹이 3054 2001/01/19
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.