2009-08-28 10 views
3

DLL이 필요한 Eclipse RCP 플러그인이 있습니다.Eclipse RCP 플러그인에 DLL을로드하는 기본 방법은 무엇입니까?

MANIFEST에 DLL 참조를 추가하는 가장 좋은 방법은 무엇입니까? DLL은 어디에 위치해야합니까? 권장되는 디렉토리 이름은 무엇입니까?

나는 상반되는 관행을 읽었습니다. 어떤 사람들은 아키텍쳐와 프로세서 타입을 가진 폴더를 만들 것을 요구합니다. 어떤 것은 Manifest에서 플랫폼 필터를 설정하도록 요청합니다. ...

+0

달리 언급 한 문서에 관심이 있으실 것입니다. 참조 번호 –

답변

2

Eclipse 응용 프로그램에서 가장 좋은 방법은 플러그인 조각을 사용하는 것입니다. 표준 이클립스 프로젝트 (dll과 함께)는 지원되는 모든 플랫폼에 대해 여러 조각을 갖습니다. 프래그먼트는 대상 플랫폼 (플랫폼 필터에서 지정) 인 경우에만 활성화됩니다. (설치 표준 이클립스와 함께 제공) 일식 문서

플랫폼 필터에서

플러그인 실행에 대한 실행중인 시스템에서 true로 평가해야 유효한 LDAP 문자열입니다. 예를 들어, 다음 필터는 플러그인이 win32 윈도우 시스템이있는 플랫폼에서만 실행되도록 설계되었음을 나타냅니다. Eclipse-PlatformFilter : (ws = win32). 사용자가이 요구 사항을 충족하지 않는 플랫폼에서 Eclipse를 실행하려고 시도하면 플러그인이 런타임에서 자동으로 무시됩니다.

+0

가능한 경우 Eclipse의 사용자 정의 Eclipse-PlatformFilter 헤더 대신 표준 OSGi 필터를 사용하는 것이 좋습니다. – SteveD

+0

이것은 내가 사용하고있는 것이지만, steven이 제안한 OSGI 필터를 사용하고있다. –

0

나는 org.eclipse.swt.win32 프래그먼트의 예를 따를 것이고, 항아리의 뿌리에.

참고로 독립 실행 형 예제를 실행하는 방법을 설명하는 SWT Examples documentation 섹션이 있습니다.

+1

게시 할 수 있습니까? 실제 Eclipse 코드에서 발견되는 관행을 따르는 데주의해야합니다. 일반적으로 최신 권장 사항을 사용하지 않습니다 (항상 성숙한 코드 기반의 문제). – SteveD

+0

@stevendick 귀하의 요점은 명확하지 않다, 내 대답은 단편을 사용하고 jar에 dll을 넣는 것을 제안한다. 본질적으로 당신이 추천하는 Malaxeur의 대답과 같다. –

+0

예, 기본 원칙은 동일하지만 대부분 필자가 본 Eclipse 코드는 표준 OSGi 필터를 사용하여 런타임에로드되는 조각을 제어하지 않습니다. Malaxeur의 제안은 표준 OSGi가 아닌 Eclipse 매니페스트 확장을 사용합니다. – SteveD

1

Eclipse RCP는 OSGi를 기반으로하므로 원시 코드 처리에 대한 OSGi 4.1 설명서를 확인할 수도 있습니다. 이클립스 녀석들이 OSGi 접근법을 추천하기 시작했다고 생각하지만, 나는 그 권고안을 어디에서 보았는지 기억이 안 난다.

저는 조각과 필터를 사용하여 Malaxeur의 제안을 사용했습니다. 조각/번들 내부의 실제 레이아웃은 중요하지 않지만 두 개 이상의 라이브러리가있는 경우 별도의 lib 디렉토리를 만듭니다.

OSGi 4.1 사양은 here입니다.

관련 문제