2009-09-03 5 views
1

확장 기능 내에서 Firefox의 새 탭에 HTML 코드를 작성하는 데 C++ 도움말을 찾고 있습니다.C++은 이미 확장 된 Firefox 탭 두 개에 HTML을 작성합니다.

우리의 C++ 코드는 부분적으로 XPCOM 래퍼로 싸여져 있으며, 우리는 연락이 끊긴 컨설턴트의 도움으로 Firefox 확장에 포함되어 있으며, 여전히 부분적으로 독립 실행 파일을 호출하여 구현됩니다.

독립 실행 형 실행 파일에서 출력을 표시하려면 C++ 코드가 출력을 파일에 쓰고 단순히 system (firefox file.html)을 호출하면 file : - 기반 URI가 생성됩니다.

Vista를 실행하는 사용자의 보고서를 기반으로 모든 상황에서 더 이상 작동하지 않습니다. 따라서 올바른 작업을 수행하고 DOM을 탐색하여 나머지 C++ 코드를 XPCOM으로 래핑 된 부분에 통합 할 가능성이 있습니다. 아마도 DOM 모델을 사용하여 독립 실행 형 파일에서 수행 할 수있는 올바른 방법이 있을까요?

"현재 작업 디렉터리"는 확장 프로그램이 독립 실행 형 실행 파일을 설치 한 디렉터리와 "VirtualStore"경로 요소가 더 이상 일치하지 않는 것 같습니다.

우리는 또한 특정 MIME 형식 인 VRML로 병렬 출력을 생성합니다.

C++ 프로그래밍 방식 컨트롤에서 Firefox 브라우저 창으로 출력을 올바르게 생성하는 방법에 대한 제안이나 예제는 매우 감사하겠습니다.

답변

0
  1. 상대 URL (file.html)이 아닌 완전히 지정된 file : /// URL로 Firefox를 호출 할 수 있습니다.
  2. 다른 실행 파일을 덤프하려면 또는 더 간단한 about module을 구현할 수 있습니다 (여기서 ios.newChannel은 데이터를 생성하는 자체 채널 구현으로 대체됩니다).

나는 파일 세대 솔루션을 확인하고 아주 나쁜 것 같지 않습니다 유지 말하고 싶지만, 그래서 (1), 아마도 임시 폴더에 생성 된 파일의 위치를 ​​변경하고 완전하게 지정에 가고 싶어 그것을 생성하는 실행 파일과 Firefox 모두.

+0

첫 제안은 의미가 있지만, 현재 작업 디렉토리 컨텍스트가 문제가 될 것이라고 생각합니다. Microsoft 디렉터리 사양에 공백과 백 슬래시 문자가 있으면 Microsoft 전체 파일 사양을 파일 기반 URI에 매핑 (url-encode)하는 올바른 방법에 대한 제안이 있습니까? –

+0

Microsoft getcwd() 출력에 수정 된 URL 인코딩을 사용하면 작동하지만 실제로 처음보고 된 것과 똑같은 문제가 발생합니다. Vista 64 비트에서 getcwd()의 출력 결과는 사용자 프로필을 기반으로하지 않고 URI가 열리지 않는 일종의 가상화 된 경로를 제공합니다. 원래 문제 또는 채널을 통해 C++에서 HTML을 낙서로 옮기는 샘플 구현을 가리키는 포인터로 돌아가서, 나는 모두 귀가 다. –

+0

C++의 샘플 구현이 부족하고 어쨌든 C++로 작성하는 것을 권장하지 않습니다. 모질라 소스 코드에서 예제를 찾을 수는 있지만 쉽게 복사/붙여 넣기를 할 수는 없습니다. – Nickolay