Delphi 2006에서 MS Excel COM-Addin을 작성하고 있습니다. 개발 컴퓨터에 Excel 2007이 설치되어 있습니다.Delphi Excel COM-Addin
프로젝트를 ActiveX 라이브러리로 시작한 다음 Delphi ActiveX 프로젝트 메뉴에서 자동화 개체를 추가했습니다. 내 자동화 개체에서
나는
IDTExtensibility2 = interface(IDispatch)
['{32E456FC-C710-43AA-9ACA-DDE8F132B91B}']
function OnAddinsUpdate(var w_Custom: OleVariant): HResult; stdcall;
function OnBeginShutDown(var w_Custom: OleVariant): HResult; stdcall;
function OnConnection(const w_Application: IDispatch; w_ConnectMode: Integer;
const w_AddInInst: IDispatch; var w_Custom: OleVariant): HResult; stdcall;
function OnDisconnection(w_DisconnectMode: Integer; var w_Custom: OleVariant): HResult; stdcall;
function OnStartupComplete(var w_Custom: OleVariant): HResult; stdcall;
end;
으로하는 IDTExtensibility2 인터페이스를 정의하고 TAutoObject에서 파생 된 클래스에서 인터페이스를 구현했습니다. 유닛의 초기화 섹션에서
나는TAutoObjectFactory.Create(ComServer, TPBSExcelAddin, Class_PBSExcelAddin, ciSingleInstance, tmApartment);
COM 개체가 미세 등록하고, 그러나 그것은에서 엑셀에 설치합니다 엑셀 추가 기능 옵션에 표시 호출합니다. "로드되지 않았습니다 .Addin COM로드 중 오류가 발생했습니다."
누구나 내 인터페이스에 문제가있을 수 있습니까? 또는 내가 com 객체를 만드는 방법? 이 디버깅 할 수있는 방법이 있습니까?
감사합니다
나는이 일을 약간 뒤로하려고 노력했다. 올바르게하기가 어렵습니다. 결국 나는 Add-in Express를 발견했는데 나는 충분히 추천 할 수 없었다. –
David에게 감사드립니다. 내가 애드 인 익스프레스를 고려했지만 오히려 내 자신의 학습을 위해 처음부터 그것을 할 것입니다. –
그럼 행운을 빌어 요! –