2012-06-28 2 views
1

여러 개의 dll 파일에 여러 클래스가 있고 각 dll 파일에는 다른 파일이있을 수 있습니다.dll을 다른 dll로 가져 오기 C++

나는 내 DLL의 모든 헤더의 __declspec 매개 변수를 지정하기 위해 다음과 같은 매크로를 사용 :

#ifdef DLL_UTIL_A 
#define DLLEXPORT __declspec(dllexport) 
#else 
#define DLLEXPORT __declspec(dllimport) 
#endif 

이의이 dllA이 dllB 포함되어 있다고 가정 해 봅시다. 문제는 dllA의 dllB 헤더 파일을 포함하면 DLLEXPORT 매크로가 dllB의 헤더 파일에서 클래스를 가져 오기 위해 재정의되었습니다. 전처리 기가 dllA로 돌아가 파싱을 계속하면 업데이트 된 원치 않는 값으로 업데이트 된 DLLEXPORT을 갖습니다.

나는 (DLLEXPORT_DLL_ADLLEXPORT를 교체합니다. 예) 각 DLL의 서로 다른 정의를 사용해야하거나 dllA에 반환 할 때 다시 DLLEXPORT의 이전 값을 얻을 수있는 깨끗한 방법은 무엇입니까?

답변

2

두 DLL에 대해 DLLEXPORT에 다른 매크로 이름을 사용해야합니다.

+0

감사합니다. 그 확인이 필요했습니다! – Frank

관련 문제