Я хочу работать с изображениями RAW в C ++, поэтому я скачал уже скомпилированный исполняемый файл DCRaw. Я сам пытался скомпилировать, но получал ошибки. Поэтому я хочу иметь возможность читать необработанные изображения на C ++ и работать с ними. Каков был бы лучший способ сделать это? Должен ли я найти способ включить dcraw.c в мои проекты и вызывать функции для этого, или я должен получить доступ к файлу EXE с помощью функции system (…)?
Если вы не хотите манипулировать необработанными данными непосредственно в вашем приложении, тогда да, вы должны использовать уже существующую реализацию декодера необработанных изображений (например, dcraw, как вы сказали).
Вот что я бы сделал в порядке предпочтения:
Сначала я бы попытался найти другой необработанный декодер изображений, который доступен в виде статической или динамической версии библиотеки, и ссылку на него (у dcraw есть только исполняемый файл).
Если № 1 невозможен, я извлеку соответствующие части dcraw в статическую библиотеку и сошлюсь на нее.
Если это невозможно, я бы включил файл .c в мой код, как вы предложили.
Я бы только выполнял EXE изнутри моей программы в качестве крайней меры.
При этом, если ваше приложение предназначено только для экспериментов, я не вижу ничего плохого в использовании dcraw EXE из вашей программы. Иначе я бы не стал делать это в профессиональном приложении.
Других решений пока нет …