【发布时间】:2015-01-09 03:07:15
【问题描述】:
我有一个应用程序可以从专有二进制格式的文件中读取数据。该公司提供带有结构的头文件,可以直接解析文件。到目前为止一切顺利。
供应商刚刚发布了一种全新的格式并提供了一组新的头文件。不幸的是(或者幸运的是,取决于您的观点),这些标头包含名称相同但定义完全不同的结构。
所以这是我的问题 - 我有两个头文件,它们定义了具有不同定义的相同结构,我的应用程序需要同时支持旧版本和新版本的文件格式。头文件有几千行,所以调整是不可行的。
在 C 中进行这项工作的最佳方法是什么?在 C++ 中,我可以将每个结构包装在命名空间中,但我不确定如何用 C 解决这个问题...
提前致谢!
【问题讨论】:
-
为每一个创建单独的库并动态加载适当的库并调用函数。
-
@radar 不幸的是,该应用程序需要同时支持两种文件格式。我想我可以在单独的库中创建包装器函数,但我希望有一些不那么强烈的东西:)
-
难道你不应该惊恐地尖叫并与那个优秀的供应商断绝关系吗? :)
-
只是一个旁注。在 C++ 中,由于名称修饰,除非您可以重新编译所有源代码,否则您实际上无法做任何事情。
标签: c struct namespaces