【问题标题】:What is the cleanest way to include and access binary data in VC++ Express?在 VC++ Express 中包含和访问二进制数据的最简洁方法是什么?
【发布时间】:2010-11-26 02:03:06
【问题描述】:

我有一些二进制文件想嵌入到我正在使用 VC++ Express Edition 编译的 dll 中。

我有几种方法可以做到这一点(比如将数据转换为与代码一起编译的数组),但我并不满意,我觉得我可能缺少一个简单、直接的解决方案。

最干净、最简单的方法是什么?

【问题讨论】:

    标签: c++ c dll


    【解决方案1】:

    我不知道这是否是一个选项,但 Unix(可能很容易在 Windows 上可用)程序 xxd 有一个输出 C 标头的选项:

    xxd -i file.bin > file.h
    

    file.h 将包含包含数据的unsigned char 数组的定义和告诉您数组长度的unsigned int。当然,最好输出到file.c,然后写file.h为:

    extern unsigned char file[];
    extern unsigned int file_len;
    

    变量的名称取决于输入文件。希望这会有所帮助。

    【讨论】:

    • 嘿。 Google 桌面搜索了我的硬盘,我已经有了 xxd!与 Vim 一起出现。谢谢!
    • Vinay Sajip 给出的资源答案更接近我的要求,但是使用 xxd 非常容易,我决定放弃我编写的自定义代码并改用它。如果我的文件更大,我可能会选择二进制资源。
    【解决方案2】:

    上一次我不得不这样做(不久前)我使用了二进制资源。这是描述该方法的article。不过,我不确定是否有更新的更好的方法。

    【讨论】:

      猜你喜欢
      • 2013-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多