비주얼 컴포넌트 프레임워크
Visual Component Framework개발자 | VCF 개발 그룹 |
---|---|
최종 릴리즈 | 0.9.8 / 2008년 5월 14일; 전( 5월 14일 |
기입처 | C++ |
운영 체제 | Windows/Win32, Mac OS X/Carbon (API) |
유형 | 개발 라이브러리 |
면허증. | BSD |
웹 사이트 | web.archive.org/web/20180104190229/http://vcf-online |
VCF(Visual Component Framework)는 마이크로소프트 윈도우즈 및 Apple Macintosh에서 개발을 위한 포기된 오픈 소스 프로젝트로 BSD 라이센스로 배포됩니다.GUI 기반의 C++ 어플리케이션의 생성을 용이하게 하는 고도의 C++ 어플리케이션 프레임워크입니다.이 프레임워크는 C++ 설계로 신속한 애플리케이션 개발을 지원합니다.이 프레임워크는 여러 플랫폼과 컴파일러를 통해 이식할 수 있도록 설계되었습니다.
이 프레임워크는 Windows 및 Mac OS X에서 실행되지만 2006년 4월 6일 현재 Mac 포트는 불완전하며 Linux 포트는 아직 보류 중입니다.
이 프로젝트에서는 다양한 컴파일러와 통합 개발 환경(IDE)을 지원하기 위해 많은 노력을 기울여 개발자가 원하는 IDE/컴파일러로 작업할 수 있게 되었습니다.Windows 에서의 컴파일러의 서포트는, Microsoft Visual C++ 버전 6, 7, 7.1, 및 8과 Borland C++ 컴파일러, 인텔 C++ 컴파일러, GCC 를 대상으로 하고 있습니다.Mac OS X에서는 Xcode IDE를 사용하여 GCC가 지원됩니다. CodeWarrior 포트는 완료되었지만 CodeWarrior가 컴파일러의 x86 버전과 나중에 PowerPC 버전도 지원하지 않아 중지되었습니다.
면허증.
프레임워크는 BSD 라이선스로 동작하는 모든 플랫폼에 대해 라이선스가 부여됩니다.
설계와 목표
이 프레임워크는 몇 가지 목표를 염두에 두고 설계되었습니다.하나는 Mac OS X, BeOS 또는 Windows CE와 같은 임베디드 운영 체제와 같은 Windows 이외의 다른 플랫폼으로 이식할 수 있는 기능입니다.
다음 목표는 Borland의 Object Pascal, Java 또는 Objective-C와 같은 언어에서 볼 수 있는 동적 프로그래밍을 확실하게 지원하는 것입니다.여기에는 개발자가 런타임에 특정 클래스 인스턴스에 대한 모든 종류의 정보를 쿼리할 수 있는 RTI 또는 리플렉션과 같은 클래스가 포함되었습니다.
또 다른 목표는 Dellphi에서 볼 수 있는 것과 유사한 시각적 프로그래밍이나 신속한 애플리케이션 개발이 가능하도록 UI 클래스를 설계하는 것이었습니다.여기에는 속성 편집기, 컴포넌트 편집기, 외부 텍스트 파일과의 UI 상태 지속성, 동적 기능을 사용하여 클래스 인스턴스를 즉시 만들고 인스턴스의 등록된 속성을 가져오고 설정하는 기능이 포함됩니다.
이와 더불어 마지막 목표는 애플리케이션을 개발할 때 특히 대규모 애플리케이션을 위한 많은 공통 프로그래밍 작업을 지원하는 것이었습니다.여기에는 다양한 종류의 IO(메모리, 파일/디스크 등), 스레드 지원 및 뮤텍스, 세마포어, 조건 등의 다양한 동기화 프리미티브 지원, 유니코드 문자열 지원, 로케일 및 국제화 지원(문자열 리소스 현지화, 포괄적인 리소스 지원, 기본 XML 구문 분석 등)이 포함됩니다.그래픽스 기능에는 안티그레인 그래픽 라이브러리를 사용한 안티에이리어스 그래픽스, 완전한 아핀 변환 지원, 이미지의 픽셀 비트에 직접 액세스할 수 있는 이미지 등이 있습니다.추가 응용 프로그램 지원 기능에는 실행 취소/재실행 클래스, 모델 뷰 컨트롤러의 고급 지원도 포함됩니다.
일반적으로 프레임워크는 표준 템플릿 라이브러리를 최대한 활용하여 컨테이너 클래스 또는 문자열 처리와 같은 작업의 중복을 방지합니다.
가능한 경우 프레임워크는 단순히 재실장하는 것이 아니라 dynamic_cast 및 typeid를 사용하는 것과 같은 네이티브 C++ RTI 지원 위에 구축됩니다.
파일, 스레드, 그래픽 디바이스, 윈도 컨트롤(또는 위젯) 등 대부분의 OS 오브젝트는 특정 네이티브오브젝트와 직접 통신하는 신레이어를 사용하여 구현됩니다.UI 컨트롤은 대부분 에뮬레이트되지 않고 프레임워크는 대부분의 장소에서 네이티브 위젯을 사용합니다.플랫폼 고유의 기능이 필요한 경우 기본 OS "핸들"에 직접 액세스할 수 있으므로 개발자는 플랫폼의 네이티브 API를 쉽게 호출할 수 있습니다.