2009-10-27 8 views
1

문제가 생겼습니다 ... 직장에서 사용하는 응용 프로그램에서 QTKit을 사용하려고합니다. 유일한 문제는 앱이 Obj-C가 아니라 C++로 작성된 것입니다. 나는 애플의 설명서를 통해 답을 찾았지만, 유용한 것은 아무것도 발견하지 못했다.C 인터페이스를 사용하는 목적의 C 라이브러리

기본적으로 내가하고 싶은 것은 Obj-C에서 단일 컨트롤러 클래스를 작성하는 것이고,이 메소드는 C 인터페이스를 통해 내 애플 리케이션에 노출된다. 이미 모든 코드를 작성했지만, 샘플 C++ 애플리케이션에 링크하려고하면 lib에있는 Obj-C 심볼을 발견하고 거기에 있다는 것에 대해 불평합니다. 나는 컴파일러 플래그를 사용하여 심볼을 숨겨야한다고 생각했지만, 클래스와 메시지는 링커가 아니라 런타임에 의해 바인딩되기 때문에 Obj-C가 영향을받지 않는다는 Apple의 문서를 보았습니다.

누구든지 성공적으로이 작업을 수행 했습니까?

감사합니다, 로비

답변

3

당신은 ++ 목표 - C를 사용하여 C++ 응용 프로그램 내에서 QTKit이를 사용할 수 있습니다

.mm.cpp에서 QTKit이 액세스 파일의 이름을 바꿉니다. 이 코드는 기존 코드에서 아무 것도 변경하지 않지만이 파일 내에서 Objective-C를 사용할 수 있습니다.

+0

가능하면 Objective-C++에서 멀리 떨어져있는 것을 선호합니다. 코드는 Windows와 Linux 사이의 공유이기도하므로 C 인터페이스 만 갖고 싶습니다. – Robbie

+0

어쨌든 플랫폼 독립적 인 부품과 QTKit 부품을 분리해야합니다. 플랫폼 특정 부분은 다른 플랫폼에서 컴파일하지 않기 때문에 mm 파일에 넣을 수 있습니다. 그러나 QTKit 옆에 다른 비디오 API를 쉽게 사용할 수 있도록 추상화 레이어를 삽입하려는 것 같습니다. 그건 의미가 있습니다. –

관련 문제