win32 C/C++로 작성된 시스템에서 작업하면서 GDI를 사용하여 복잡한 시스템 (열 교환기)의 단면을 그렸습니다. 작성된 코드의 대부분은 C 기반입니다 C++ 및 따라서 객체 지향 프로그래밍 없음). 이 시스템에서 GDI +를 사용할 수 있을지 궁금합니다.GDI를 사용하는 GDI +를 GDI를 사용하는 레거시 C 기반 win32 시스템과 함께 사용
현재 모든 코드는 HPEN, HBRUSH, Polygon(), Rectangle(), MoveToEx(), LineTo(), DrawText() 등의 기본 GDI 프리미티브를 사용하고 있습니다. GDI + 툴팁에 대한 컨포넌트에 대한 컨텍스트 상세 정보를 그리는 방법은 SO question을 참조하십시오. GDI +의 글꼴 렌더링은 GDI가 (link)만큼 효율적이지 않다는 것을 읽었습니다.
요약하면이 오래된 시스템에서 GDI +를 사용할 수 있습니까? (거대한 코드 기반을 가지고 있기 때문에 다시 작성할 수 없습니다). 둘째, GDI +로 이동하면 성능이 저하됩니까?
최악의 경우 비트 맵에서 GDI를 사용하여 그리기 시작한 다음 GDI +로 계속 진행할 수도 있고 화면의 비트 맵 또는 GDI가 처음으로 그린 곳에서 블립 할 수도 있습니다. 화면의 드로잉에서 코드의 레거시 부분에 대한 비트 맵 드로잉으로의 전환이 DC 생성에 있어야합니다. 실적이 좋으면 직접 측정하는 것보다 나은 방법은 없습니다. –
근본적인 C 기반 API를 사용하는 것은 불가능하지 않지만 분명히 잔인하고 비정상적인 처벌이며 제대로 문서화되지 않았습니다. 이 프로젝트에 C++ 코드를 추가하려면 C++ 페인팅 도우미 함수 인 extern "C"를 선언하여 링커가 만족할 수 있도록하십시오. –