문제

Windows, Linux, OS/X와 같은 최신 운영 체제에서 실행되는 다른 프로그램과 동적으로 연결되는 라이브러리를 작성하고 싶습니다(예:이는 다음과 같이 배포됩니다. .dll 또는 .so 기준 치수).

이 경우 가장 적절한 언어는 무엇입니까?일반 C를 고수해야 할까요?아니면 C++도 괜찮나요?

도움이 되었습니까?

해결책

구현에는 C 또는 C ++를 사용할 수 있지만 Pure C에서 인터페이스를 정의하는 것이 좋습니다. 통합하기가 훨씬 쉽습니다.

다른 팁

이진 형태로 배포 된 C ++ 라이브러리를 만드는 데 어려움은 라이브러리 사용자 인 고객이 일반적으로 라이브러리를 만든 것과 동일한 C ++ 컴파일러를 사용하도록 제한되어 있다는 것입니다. 최신 상태를 유지하고 싶지 않거나 최신 상태를 유지하고 싶지 않은 경우에는 문제가 될 수 있습니다. 소스를 다루는 경우 C ++가 고객이 사용하는 모든 컴파일러가 사용할 수있을 정도로 휴대용 인 한 문제가되지 않습니다.

코드가 C에서 사용될 수 있다면 아마도 C 인터페이스로 코딩 할 것입니다. 대안, 기본 C ++ 인터페이스와 C 인터페이스의 두 인터페이스를 제공합니다. 그러나 그것은 단순한 C 인터페이스보다 더 많은 작업입니다. 반면에 C ++ 인터페이스 (STL ITERATORS 등 사용)의 혜택이있을 수 있으며 이는 귀하의 결정을 흔들 수 있습니다.

또한 C가 가장 낮은 공통 분모라고 말합니다. 호출 응용 프로그램과 더 잘 통합되면 항상 C ++ 래퍼를 핵심 라이브러리에 작성하는 옵션이 있습니다.

나는 C가 가장 예측 가능한 휴대용이라고 말하지만 C ++는 가능하다.

최소 공통 분모를 고려하고 도서관 소비자가 자신에게 가장 적합한 결정을 내리도록 하세요.extern c의 구조는 여전히 일부 사람들에게 혼란을 줄 수 있으며 라이브러리가 멀리 이동하여 가장 많은 청중에게 다가가기를 원합니다.확실히 인터페이스를 순수하게 만드세요. c.STL과 같은 어두운 부분을 피한다면 C++는 괜찮습니다.C는 가장 휴대성이 뛰어난 바입니다.사용 가능한 모든 플랫폼에 대한 라이브러리를 만드는 것은 결코 쉬운 일이 아니므로 꼭 살펴보십시오. 여기 몇 가지 힌트를 위해.autoconf 등의 사용을 고려할 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top