Доступ к файлам текстовых данных из функции статической библиотеки

Как включить статическую библиотеку для извлечения данных, доступных в файлах данных ascii?

Я пытаюсь добавить модель к моделированию в виде библиотеки, которая содержит функции, которые читают данные из файлов данных. Я могу компилировать и запускать функции из основной программы вне фактической полной симуляции, но как только я помещаю функции в качестве библиотеки на хост для симуляции, данные больше не читаются.

Поскольку путь к данным меняется в зависимости от пользователя, я не могу предоставить абсолютный путь к файлам данных ascii. Есть ли способ использовать objcopy для преобразования файлов данных в объектный код в библиотеке или как лучше всего получить доступ к данным из моей статической библиотеки?

1

Решение

Есть несколько решений, чтобы открыть файл, который имеет неизвестное местоположение во время компиляции. Запрашивает у пользователя имя файла, включая каталог. Используйте переменную окружения, чтобы указать каталог, содержащий файл … Fortran 2003 имеет встроенную функцию для получения значения переменной окружения. Получите информацию из аргумента командной строки … снова Fortran 2003 имеет встроенную функцию для этой цели. С учетом всего этого создайте имя файла как строковую переменную и передайте эту переменную в ключевое слово FILE оператора OPEN.

3

Другие решения

Я не знаю, почему вы включили тег Fortran, но в Fortran вы:

скажите код, чтобы открыть файл, который вы хотите, используя строку символов

читать из него

и закрыть его

Нет разницы между основной программой или библиотекой.

1

Если у вас есть такая функция, скажем:

void read_data_from_files() { ... }

Вам нужно будет изменить его в DLL, чтобы он был больше похож на:

DataObject read_data_from_file(const char* file_path) { ... }

И затем назовите это соответственно.

Вам нужно будет разработать DataObject,

0
По вопросам рекламы [email protected]