2010-12-03 5 views
1

저희 회사에서는 QT 플러그인 시스템을 사용하여 작성한 플러그인 시스템을 사용하고 있습니다. 각 플러그인에는 "필요한 기능"과 "자체 기능"이 있으므로 플러그인에 * func_1 *이라는 기능이 필요하면 * func_1 *이라는 기능을 가진 플러그인이 있어야합니다.C++ 플러그인에 대한 포인터 전달 방법

위대한 작품이지만 지금은 문제가 있습니다. 플러그인은 다른 플러그인에서 사용하는 특정 클래스 객체에 대한 포인터를 알아야하지만 외부 변수입니다. 이 클래스에 대한 정보는 플러그인 인터페이스와 아무 관련이 없으므로 플러그인 인터페이스에는이 정보를 넣을 수 없습니다.

내가 가진 유일한 해결책은 void 포인터를 전달할 수있는 인터페이스 함수를 작성하는 것이지만 다른 솔루션이 C 스타일보다 적은지 알고 싶습니다.

미리 감사드립니다.

+0

질문이 명확하지 않습니다. 테스트 케이스를 제공 할 수 있습니까? –

+0

아니면 이탈리아어로 물어볼까요? :) – marco

+0

난 단지 의 포인터를 다른 플러그인의 플러그인에 전달해야합니다. 이상한 것은 없습니다. 하지만 나는 boost :: any를 제안하려고 노력 중이며 잘 보입니다. – marco

답변

1

void 포인터에 대한 최신 C++ "대체"는 Boost.Any와 비슷합니다. 인터페이스를 통해 아무 것도 전달하지 않고 특정 유형의 안전을 제공합니다.

+0

부스트 .Any? 좋아, 고마워. – marco

+0

다시 한번 감사드립니다. boost :: any를 사용했고 완벽했습니다. – marco

관련 문제