我正在一个没有操作系统的非常特定的平台上工作。手头的任务需要将字符串和位图等资源存储在原始二进制数据中,与二进制代码分开,以便在运行时访问它。
我们有直接的存储块读写机制实现,但没有文件系统。该语言主要是 C++,没有模板和异常,这是平台编译器的限制,所以没有 stl 和 boost。
鉴于这些限制,我需要一种简单的数据库存储方法来将上述资源存储在磁盘上并使用某种密钥访问它们。我暂时推出了自己的产品,它使用简单的平面二进制存储,并且可以使用数字 id 进行寻址 - 用于获取资源原始字节偏移量的表索引。然而,这确实不方便使用,因为我必须手动跟踪资源 ID 并确保它们从 0 开始按顺序分配。
我在想也许已经有更好的库解决方案可以相对容易地修改以适应要求,并且可以在我开始推出散列函数之前与代码库集成,以便我可以使用短字符串作为键?存储在生成后是恒定的,并且仅用于读取。
编辑:我想我需要的是一个资源 dll 的替代品,它可以在没有运行时链接器和文件系统的情况下工作(或轻松工作)。