Как включить статическую библиотеку для извлечения данных, доступных в файлах данных ascii?
Я пытаюсь добавить модель к моделированию в виде библиотеки, которая содержит функции, которые читают данные из файлов данных. Я могу компилировать и запускать функции из основной программы вне фактической полной симуляции, но как только я помещаю функции в качестве библиотеки на хост для симуляции, данные больше не читаются.
Поскольку путь к данным меняется в зависимости от пользователя, я не могу предоставить абсолютный путь к файлам данных ascii. Есть ли способ использовать objcopy для преобразования файлов данных в объектный код в библиотеке или как лучше всего получить доступ к данным из моей статической библиотеки?
Есть несколько решений, чтобы открыть файл, который имеет неизвестное местоположение во время компиляции. Запрашивает у пользователя имя файла, включая каталог. Используйте переменную окружения, чтобы указать каталог, содержащий файл … Fortran 2003 имеет встроенную функцию для получения значения переменной окружения. Получите информацию из аргумента командной строки … снова Fortran 2003 имеет встроенную функцию для этой цели. С учетом всего этого создайте имя файла как строковую переменную и передайте эту переменную в ключевое слово FILE оператора OPEN.
Я не знаю, почему вы включили тег Fortran, но в Fortran вы:
скажите код, чтобы открыть файл, который вы хотите, используя строку символов
читать из него
и закрыть его
Нет разницы между основной программой или библиотекой.
Если у вас есть такая функция, скажем:
void read_data_from_files() { ... }
Вам нужно будет изменить его в DLL, чтобы он был больше похож на:
DataObject read_data_from_file(const char* file_path) { ... }
И затем назовите это соответственно.
Вам нужно будет разработать DataObject
,