如何使用bin2h?
我正在尝试使用bin2h将字体文件(font.ttf)转换为C文件,但它不起作用。
有人可以告诉我将输出保存到文本文件的语法吗?
我一直试图解决这个问题,但没有任何工作,这让我感到疯狂。 我真的很沮丧,因为我知道这个工具正在工作(我让它像一年前一样工作),但我不记得我是如何使用它的。
该网站上的示例语法并没有真正帮助……
请
感谢Orbit在下面的评论中的Lightness Races,我终于得到了正确的语法!
bin2h -cz font output.h
那是有效的,谢谢
也许您正在查看网站上的用法示例,而没有意识到它是从shell执行的程序? 它不是一行C代码。
因此,如果要从C程序中使用它,则需要通过system
或exec
等函数执行它。 但是,由于它的输出是一行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以文本格式输出到源文件。
最终而
将结束括号和分号写入源文件。