2014-01-17 3 views
0

zip 파일, 메모리 또는 사용자 정의 팩 파일에서 동적 라이브러리 (soll 또는 dll)를로드하는 방법이 있습니까? 또는 나는 나의 시간을 낭비하고 있는가? 내가 인터넷에서 찾을 수있는 것은 아무것도 없다.zip, 메모리 등에서 동적 라이브러리로드

[편집] 명확한 설명 : LoadLibraryEx (Windows의 경우) 또는 dlopen (Linux의 경우)을 사용하여 동적 라이브러리의 런타임 로딩을 찾고 있습니다. 나는 쉽게 디렉토리에서 객체를로드 할 수 있지만 공유/동적 라이브러리를 ZIP 파일에 넣고 그 파일 내부에서로드하는 방법이 있는지 알고 싶습니다.

+0

목표는 무엇입니까? 파일을 압축 해제하고 동일한 프로그램에서 라이브러리를 사용 하시겠습니까? 라이브러리를 사용하려면 -l 플래그로 프로그램을 컴파일해야합니다. –

+0

"LoadLibraryEx"또는 "dlopen"을 사용하여 런타임에 라이브러리를로드하려고합니다. – Gasim

답변

1

예. 라이브러리 로딩은 플랫폼에 따라 다릅니다 (Windows는 LoadLibrary(), 예를 들어 dlopen 호출을 사용함). 창에서 그들은 DLLs이고, * NIX에서는 .SO입니다. 너무 어렵지도 않습니다. 실제 구현 세부 사항을 플랫폼 별 클래스로 추상화 할 수 있습니다.이 클래스는 많은 C++ 플러그인 아키텍처가 런타임에 모듈을 동적으로로드 할 수있게 해줍니다.

질문의 두 번째 부분에 대해서는 메모리 부분에 대해서는 확실하지 않지만 확실하게 .zip 파일 부분은 Api를 사용하여 zip 파일에서 임시 위치로 라이브러리를 추출하는 경우이며 라이브러리를 동적으로로드합니까? 임시 위치에 어떤 (여기서 사용자, zip 파일을,

  • 사용자 정의 팩 파일의 라이브러리를 추출 : 동일은 맞춤 팩 파일라고 할 것입니다, 당신은 단지, 즉 문제의 분리를 가지고 쓰기 권한이 있습니다.
  • 평소와 같이 라이브러리로드 (예 : LoadLibrary())
  • 직접 치료하십시오.

플랫폼에 독립적이거나 심지어 플랫폼에 의존하는 zip 파일에서 직접로드하는 방법은 없으며 어느 정도 틈새가 있어야합니다. 다른 곳에서 추출한 후 평상시처럼 업무를 수행하십시오.

+0

감사합니다. – Gasim

관련 문제