2009-09-01 6 views
1

내가 XPCOM 구성 요소가 C에 writen ++ 나는이 오류 얻을 호출 파이어 폭스 확장 개발하고 있어요 :NS_ERROR_XPC_GS_RETURNED_FAILURE 오류 코드

cid = '@myCompany.com/MyComponent;1'; 
obj = Components.classes[cid].getService(Components.interfaces.IMyComponent); 
: 나는 자바 스크립트에서이 코드를 실행하려고하면

[Exception... "Component returned failure code: 0x80570016 
(NS_ERROR_XPC_GS_RETURNED_FAILURE) [nsIJSCID.getService]" nsresult: "0x80570016 
(NS_ERROR_XPC_GS_RETURNED_FAILURE)" location: "JS frame :: 
chrome://testtest/content/mytest.js :: loadTestPage :: line 128" data: no] 

누구든지이 오류 코드의 의미를 알고 있습니까?

이 오류는 작동하는 다른 플랫폼에서 FF 3.5.2 (32 비트 공식 빌드, FF를 다시 설치하고 새 프로파일을 만든 후에도)를 실행하는 Vista (x86 및 x64)를 실행하는 컴퓨터에서만 발생합니다. XPCOM 구성 요소는 Visual C++ 2008 (sp1)로 컴파일됩니다.

compreg.dat 및 xpti.dat을 삭제하려고했지만 작동하지 않으며 새 프로필을 만든 다음 확장 프로그램을 다시 설치하려고했지만 여전히 동일한 오류가 발생합니다.

Firefox에서 내 XPCOM 구성 요소가 성공적으로로드되고 해당 구성 요소가 작동한다는 것을 알고 있습니다. 자바 스크립트로 작성된 다른 구성 요소에서 Firefox를 액세스하고 사용할 수 있기 때문입니다.

오류 콘솔에서 평가 또한 작동합니다.

표현 :

Components.classes['@myCompany.com/MyComponent;1'].getService(
    Components.interfaces.IMyComponent); 

반환 :

[xpconnect wrapped IMyComponent] 

감사합니다!

답변

1

오류는 구성 요소가 getService 호출 중에 던졌습니다.

+0

++ XPCOM componten은 다른 JS 구성 요소에서도 호출되며 작동하지만 확장에서 실패합니다. 이는 Vista OS 및 FF 3.5.2를 실행하는 몇 대의 컴퓨터에서만 발생합니다 (FF가 다시 설치되고 새 프로필이있는 경우에도 마찬가지 임). 또한 내가 평가하려고 : 오류 콘솔에서 Components.classes [ '@ myCompany.com/MyComponent;1'].getService(Components.interfaces.IMyComponent) 표현식 및 작동 (오류 콘솔의 메시지가 [xpconnect wrapped IMyComponent]) 감사합니다. . –

+0

재귀 서비스로드에 대해서도 발생할 수 있습니다. 구성 요소에서 getService를 재귀 적으로 호출 할 가능성이 있습니다. – sdwilsh

3

구성 요소 등록 중에도 .getService를 호출 할 가능성이 있습니다. 등록하지 않았거나 아직 사용할 수 없으므로 등록 중에 외부 구성 요소를 만들지 마십시오.