2010-11-23 3 views
2

다른 DLL (Visual C++ 둘 다) 내에 dll을로드해야하므로 두 번째 DLL에 첫 번째 클래스에 포함 된 클래스를 사용할 수 있습니다. 두 코드를 모두 만들었으므로 두 코드를 모두 가지고 있지만 동적으로 라이브러리를로드 한 적이 없으므로이 작업이 어떻게 수행되는지 잘 모르겠습니다.다른 DLL 내에서 동적으로 DLL로드

게다가이 다중 플랫폼을 만들고 싶습니다. .dll과 .so로 이미 컴파일되었으므로 플랫폼 독립적 인 방법으로이를 수행 할 수 있습니다. 그렇지 않으면 매크로를 사용하여 창 또는 Linux의 특정 코드를 포함 할 수 있습니다.

안부와 많은 감사

답변

0

단지 컴파일하고 가장 낮은 수준의 DLL을 링크 일반적으로. 그러면 DLL 자체와 .LIB 파일이 만들어집니다. 다음 DLL을 컴파일하고 연결합니다. 링크는 .LIB 파일과 연결됩니다. .EXE에 도달 할 때까지 체인을 계속 진행하십시오 (일반적으로) 다른 링크는 없습니다.

+0

Okie dokie, 빠른 응답 주셔서 감사합니다 – Alex

1

라이브러리를 동적으로로드하는 함수는 다음과 같습니다. LoadLibrary (Windows), dlopen (Linux). 기호를 얻으려면 : GetProcAddress (Windows), dlsym (LInux). Open Library : FreeLibrary (Windows), dlclose (Linux)를 닫습니다. 창에 클래스를 동적으로로드하는 방법에 대한 기사가 있습니다 (http://www.codeproject.com/KB/DLL/classesexportedusingLL.aspx 및 Linux : http://www.linuxjournal.com/article/3687?page=0,0). 그리고 윈도우와 리눅스에서 라이브러리를 동적으로로드하는 코드가 있습니다 : http://www.sview.ru/sources/libexample/loadLibrary.h. 이게 당신을 도울 수 있기를 바랍니다.

http://www.codeguru.com/cpp/w-p/win32/article.php/c1443 (윈도우) :

동적으로 윈도우와 리눅스에서 부하 클래스에 대한 추가 정보가 있습니다. http://www.faqs.org/docs/Linux-mini/C++-dlopen.html#loadingclasses (Linux)

+0

와우, 훌륭한 기사, 많은 감사합니다! – Alex

관련 문제