Функция Тессеракта без реализации - PullRequest
0 голосов
/ 17 октября 2011

Я пытаюсь создать проект с использованием Tesseract в чем-то отличном от Visual Studio, но, похоже, нет документации о том, как это сделать.

Проблема, с которой я сейчас сталкиваюсь, заключается в том, чтоФайл scanutils.cpp вызывает функцию open (char *, int, mode_t), и это нигде не определено.Возможно, это функция Unix, которая проскользнула или должна быть расположена где-то на моей машине?

Спасибо.

Редактировать: я обнаружил, что функция открытия включает в себя использование файла fcntl.hв Unix, но его версия (C ++ Builder) не включает функцию open.Я мог бы просто определить функцию открытия в моем собственном файле, как это делается в Unix, но это кажется немного безрассудным.Есть предложения?

Ответы [ 3 ]

2 голосов
/ 18 октября 2011

В инструментах Microsoft функция open() заменена на _open(), определенная в io.h. Здесь (MSDN) вы можете найти больше информации об этом.

1 голос
/ 18 октября 2011

open() - это функция Posix, которая обычно упаковывает системный вызов open в соответствующих системах.Это довольно «низкоуровневая» функция, которая сильно зависит от платформы.

Переносимая функция C, которая обеспечивает эквивалентную функциональность, равна fopen(), в том смысле, что результат open() совпадает сFILE * fp = fopen(...); int fd = fileno(fp); - здесь fd - целое число, возвращаемое базовым вызовом open().

Стандартные функции C fwrite() и fread() соответствуют функциям Posix read() и write(),Кстати.

Старайтесь придерживаться стандартных функций C и FILE* структур данных как можно больше для максимальной переносимости.При необходимости вы всегда можете получить дескриптор файла Posix через fileno().

0 голосов
/ 18 октября 2011

open() - это стандартная функция UNIX.

...