如何使用bin2h?

我正在尝试使用bin2h将字体文件(font.ttf)转换为C文件,但它不起作用。

有人可以告诉我将输出保存到文本文件的语法吗?

我一直试图解决这个问题,但没有任何工作,这让我感到疯狂。 我真的很沮丧,因为我知道这个工具正在工作(我让它像一年前一样工作),但我不记得我是如何使用它的。

该网站上的示例语法并没有真正帮助……

感谢Orbit在下面的评论中的Lightness Races,我终于得到了正确的语法!

bin2h -cz font output.h

那是有效的,谢谢

也许您正在查看网站上的用法示例,而没有意识到它是从shell执行的程序? 它不是一行C代码。

因此,如果要从C程序中使用它,则需要通过systemexec等函数执行它。 但是,由于它的输出是一行C代码,因此最好在构建脚本中运行它以创建一个C脚本,然后将其链接到程序的其余部分。


示例(在C ++中,因为我的C生锈 – 根据需要移植到C):

main.cpp的源代码

 #include  #include "eula.h" int main() { std::cout << std::string(eula, eula_size) << std::endl; } 

构建命令

 $ bin2h -cz eula < eula.txt > eula.h $ g++ main.cpp -o myProgram 

执行命令

 $ ./myProgram 

我会写自己的。

这是算法:
打开源代码文件作为文本输出。
打开字体文件作为二进制输入。
将数组声明写入输出文件,如:

 static const unsigned char font[] = { 

虽然字体文件不是空的,但是:
使用二进制读取方法从字体文件中读取unsigned char。
将unsigned char以文本格式输出到源文件。
最终而

将结束括号和分号写入源文件。