C语言字符串\0的截断陷阱
前言
字符串在 C 语言中是一种常见的数据类型,以字符数组的形式存储。而 C 语言中的字符串以 \0 (空字符)作为结束符。然而, \0 的存在可能导致一些问题,特别是在处理包含 \0 的字符串时,常见的字符串处理函数可能会出现截断的情况。
最近就在字符串上踩了坑。
字符串在 C 语言中是一种常见的数据类型,以字符数组的形式存储。而 C 语言中的字符串以 \0 (空字符)作为结束符。然而, \0 的存在可能导致一些问题,特别是在处理包含 \0 的字符串时,常见的字符串处理函数可能会出现截断的情况。
最近就在字符串上踩了坑。
我在 iOS 上使用 beorg 来管理日程,所以经常需要在电脑和手机之间同步。
beorg 支持 iCloud 、 Dropbox 、 WebDav 等方式同步,使用 iCloud 是最简单的,但是我不想数据放到别人的服务器上面,所以我就不考虑了, Dropbox 就你懂的,所以就只剩下 WebDav 了。
WebDav 是一种基于 HTTP 协议的文件访问和管理技术,它提供了一种标准化的方式,使我们可以在网络上进行文件操作,如上传、下载、删除和重命名等。
我找了一圈看上了 Caddy ,它是一个功能强大且易于使用的 Web 服务器,它为搭建 WebDav 服务器提供了简洁而灵活的解决方案。所以今天就要用 Caddy 来搭建 WebDav 服务。
在 Android 开发中,要监听 EditText 输入内容的变化,可以通过 addTextChangedListener 方法来实现,非常方便。
但是在 Cocos2d 中要监听 TextField 却没有那么容易,我经过实验发现有两种方法可以达到同样的目的,一种是监听文本的输入事件、另一种是在每一帧里监听文本变化。
在 C++ 中有许多第三方库可以解析 JSON,但是都不是很好用,不能像 Java 中的 gson 、 fastjson 一样直接把 JSON 直接转成对象。
找了许多库,找到了nlohmann/json: JSON for Modern C++使用起来比较方便,也踩了坑,来了解一下。
在 Cocos2d-x 中实现加载动画可以提高用户体验和应用程序的交互性。加载动画通常会显示在网络通信或资源加载等操作期间,以告知用户当前操作正在进行中。
可惜的是 Cocos2d 并没有提供这种操作,不像 Android 提供了 ProgressDialog 。
所以今天就来自己实现一个。
网络编程是开发中必不可少的一环, Cocos2d-x 提供了一个简单易用的网络模块,包括 HTTP 、 WebSocket 和 Socket 三种协议的支持。
它们都是基于标准的网络协议和 API 实现的,因此可以很容易地与其他网络库或服务端进行通信。
今天就来学习一下 HTTP 的使用。
上一篇把 Cocos2d 环境搭好了,今天来学习一下 Webview 的使用。
是的我最近在学习 Cocos2d-x 。你可能会有疑问,已经 2023 年了为什么还要学习 Cocos2d-x ?
Cocos2d-x 最新一次发布是在 2019-12-04,已经 3 年没更新了,这时候学习不是明智之举。
我最初知道 Cocos2d-x 的时候还是上大学那会,在极客学院学了不少知识,后面没什么场景会用到,就再也没使用过了。
我最近又学了是因为我们有个项目要提供 Cocos2d-x 的版本,这么多年过去我也没想到还会有一天要用到。
我在搭建环境碰到了一些问题,记录一下。
前段时间写 MoviePy 系列博客的时候,要把处理的视频效果展示出来,我按照图片的写法去写视频发现并不能渲染出来,然后又用 HTML 的方式发现还是不行,经过一番研究找到了办法。
之前的几篇文章讲了 MoviePy 的一些基本使用,发现没有裁剪视频中的一个区域的功能,然后去搜文档发现要使用 fx 函数进行变换,我经过实验发现了可以直接使用 crop 方法直接进行裁剪。
过几天就是情人节了,刚好最近在研究 MoviePy ,所以今天就来使用 MoviePy 画一个爱心,会动的。
废话不多说,直接看效果
今天要使用 MoviePy 实现高斯模糊的效果
上一篇文章讲了 MoviePy 的一些使用,今天来说一下怎么把视频转成 gif ,以及怎么把 gif 转成视频。
生活中视频使用的场景越来越多,生活中不免会碰到要对视频进行处理。
现在的视频剪辑软件也非常好用,可以进行精细化制作,但是效率就低了许多,如果有很多视频要处理,那就需要非常多的时间去处理。
由于开发需要,下了最新版的 Android Studio(Dolphin) ,发现在选择 Android 设备的时候多了一个 Pair Devices Using WI-FI ,然后这里可以使用二维码和配对码,我使用了二维码进行配对,发现挺方便的,可以不用数据线了。
本文会分析一下实现的过程。
一直都想在 Emacs 中做 flutter 开发,早些年用起来非常卡,这两天试了下还挺不错的,记录一下。
内存泄漏是一个开发不得不面对的问题,在 Android 中有许多工具都可以用来检测内存泄漏,比如:MAT、Profile等。
但是这些工具都需要手动操作,比较麻烦,所以我们需要一个能够自动检测的工具,它就是LeakCanary。
今天就来了解一下原理,毕竟面试也是常问的问题。
在 JNI 中如果需要调用 Java 的方法,首先需要使用 FindClass 获取到 jclass ,然后使用 GetMethodID 获取到对应方法的 ID ,字段也是一样的要使用 GetFieldID 来获取。
如果每次都要查找一遍,是比较麻烦和耗时的,今天就来研究一下怎么把它们缓存起来以提高性能。