从静态库函数访问文本数据文件

时间:2012-10-31 20:05:45

标签: c++ c fortran fortran77 fortran95

如何启用静态库以提取ascii数据文件中的数据?

我正在尝试将模型添加到模拟中,作为包含从数据文件中读取数据的函数的库。我能够在实际的完整模拟之外从主程序编译和运行函数,但是一旦我将函数作为库放在主机上进行模拟,数据就不再被读取了。

由于数据路径因用户而异,我无法提供ascii数据文件的绝对数据路径。有没有办法使用objcopy将数据文件转换为库中的目标代码,或者如何从静态库中最佳地访问数据?

3 个答案:

答案 0 :(得分:3)

有几种解决方案可以在编译时打开一个位置未知的文件。提示用户输入文件名,包括目录。使用环境变量来指定包含该文件的目录... Fortran 2003具有获取环境变量值的内在函数。从命令行参数中获取信息...再次Fortran 2003具有此功能的内在功能。使用所有这些,将文件名构造为字符串变量,并将该变量提供给OPEN语句的FILE关键字。

答案 1 :(得分:1)

我不知道为什么你包含了Fortran标签,但在Fortran中你:

告诉代码使用字符串

打开您想要的文件

从中读取

并关闭它

主程序或库之间没有区别。

答案 2 :(得分:0)

如果您有类似的功能,请说:

void read_data_from_files() { ... }

您需要在DLL中将其更改为更像:

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

然后适当地调用它。

您需要设计DataObject