Работа с системой, написанной с использованием win32 C/C++, использует GDI для рисования поперечного сечения сложной машины (теплообменника), большая часть кода написана на основе C (не C++ и, следовательно, объектно-ориентированное программирование). Мне интересно, могу ли я использовать GDI + с этой системой.Использование GDI + с устаревшей системой на базе win32 на основе C с использованием GDI
В настоящее время весь код использует базовые примитивы GDI, такие как HPEN, HBRUSH, Polygon(), Rectangle(), MoveToEx(), LineTo(), DrawText() и т. Д. Одной из веских причин для включения или начала использования GDI + является для рисования деталей контекста для компонента, информирующего о всплывающей подсказке, см. это SO question. Я прочитал, что визуализация шрифтов GDI + не так эффективна, как GDI (link).
Подводя итоги, могу ли я использовать GDI + с этой старой системой (переписать невозможно, так как у нее огромная база кода). Во-вторых, могу ли я получить удар производительности, если я перейду на GDI +?
Вы можете рисовать с помощью любой системы, которую вы хотите, в худшем случае вы можете даже начать рисовать с помощью GDI на растровом изображении, затем продолжить с GDI +, а в конце разбить растровое изображение на экране или везде, где GDI первоначально рисовал; переход от рисования на экране к рисованию растрового изображения для устаревшей части кода должен быть только в создании DC. Для удара производительности нет лучшего способа, чем измерить его напрямую. –
Невозможно использовать базовый api, основанный на C, но это, безусловно, жестокое и необычное наказание и плохо документировано. Пора добавить код C++ в этот проект, объявить вспомогательные функции рисования C++ 'extern" C ", чтобы компоновщик был счастлив. –