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
[55014] Re:[일부자답]삽질중 원인은 찾았습니다.
대마두 [daemadoo] 1587 읽음    2008-10-24 22:48
대마두 님이 쓰신 글 :
: //---------------------------------------------------------------------------
: if (!DirectoryExists(PATH+"EXCEL")) CreateDir(PATH+"EXCEL");
: Variant excel_app;   
: Variant excel_book;
: Variant excel_sheet;
: Variant cells;
:
: String asFileName=PATH+"prototype_export.xls";   
: String asFileName_1;
:
: excel_app=Variant::CreateObject("excel.application"); 
: -> excel_app.OlePropertySet("Visible", (Variant)true);
: excel_app.OlePropertyGet("WorkBooks").OleProcedure("Open",asFileName.c_str());
: excel_book=excel_app.OlePropertyGet("ActiveWorkbook");
: excel_sheet=excel_book.OlePropertyGet("ActiveSheet");
: //---------------------------------------------------------------------------
: 빌더 2007에서 ole컨트롤을 이용하여 엑세스에 저장된 데이터를 엑셀로 임포트 하는 프로그램의 일부분입니다.
:
: 테스트용 단독 프로젝트에서 하는경우 별 문제없이 임포트 되는데요.
:
: 실제 적용해야할 프로그램에 같은 소스를 붙여 놓는 경우 위에 화살표 된 부분에서 Access Violation을 냅니다.
:
: 이상해서 에러내는 부분을 주석 처리하고 실행을 하니 그 바로 다음줄 파일을 여는 부분에서 똑같은 Access Violation을 냅니다.
:
: 질문을 검색하니 답변으로 엑셀 컴포넌트를 이용하여 작성하라는 답만 나오는데 문제점은 빌더 2007은 엑셀컴포넌트가 없네요...
:
: 해외에서도 비슷한 문제를 겪은 사람이 많은듯 한데 질문에 대한 답변이 제대로 되어있는경우를 못찾았습니다.
:
: 혹시 위문제에 대해서 아시는 내용 있으시면 좀 알려주세요 ㅜㅜ

문제의 원인에 어느정도 접근은 했는데 솔루션을 모르겠네요

적용한 프로젝트에 ActiveX를 Import한 컴포넌트를 사용하는데 그 컴포넌트를 삭제한 경우 동작을 하네요.

아마도 VC++과 Builder 간의 Variant 자료형의 크기의 차이 때문에 메쏘드를 불러오면서 에러를 띄우는 것 같은데... 알아도 해결방법을 잘 모르겠네요...

위 문제에 대해 아시는분 좀 있으시면 답변 부탁드립니다.

+ -

관련 글 리스트
55012 빌더2007 사용시 OLE로 엑셀 컨트롤할 때 ACESS VIOLATION생기네요... 대마두 1509 2008/10/24
55014     Re:[일부자답]삽질중 원인은 찾았습니다. 대마두 1587 2008/10/24
55019         Re:Re:[일부자답]삽질중 원인은 찾았습니다. 권창구.태원아빠 1307 2008/10/25
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.