lvgl在写gif解码的回调的时候有几个非常有意思的地方,今天一整天算是栽在这儿了。在写gif的时候我注意到系统有几个系统的固定函数:

于是我便对这三个函数起了兴趣,第一个是构造函数,第二个是析构函数,第三个则是判断是否为最后一贞的函数。那么按理来说lvgl是给我门留了一手能够让gif更加灵活地显示,于是我就决定修改这一函数,结果是坏事一起来。

这里一直提示我指针的错误,无论我是在主函数修改还是在系统文件修改都提示这一句,我就在这耗了一个下午,直到我忍不住看了他的创造函数,之前不看主要是因为实在麻烦,看的头晕。

这里的malloc只申请了足够obj的空间(我自己认为的,后面知道不对),所以没有初始化当然就不能设置数字了,因此如果想要修改循环就必须要在系统里面修改。但是添加一半后发现不对劲,malloc的申请空间就是一个gif_t,那自然就是有空间留给他的。于是我就看到了这个函数

这也就是说,gif的loop初始化其实是在放置后才有的,而我在放置前就设置了,所以才一直从其,重新调整位置后就成功运行。
本文探讨了在LVGL中实现GIF解码时遇到的问题,特别是关于内存分配和循环控制函数的修改。作者详细记录了解决这些问题的过程,并分享了如何正确地初始化和使用这些函数。
1355

被折叠的 条评论
为什么被折叠?



