Category: ASM/C/C++

  • C语言检查字符串是否为合法的IPv4地址, 并解析该地址函数

    为了实现这个功能, 今天写了一个, 在这里记录下来.

  • 让libvlc视频截图时不显示预览图和路径

    libvlc基本具有vlc的所有功能,同时能方便的嵌入到应用程序中, 所以很适合做视频相关类的应用. 当使用libvlc截图的时候, 可以发现它会在视频上显示一个略缩图和地址几秒钟, 对于程序自动截屏而言,很影响体验. 看头文件看了很久也没有找到办法,本来打算下个vlc源码来改改重新编译了,结果后来发现VLC客户端上,有关闭略缩图和地址的选项,就顺着找了一会, 发现这两个选项可以在创建vlc实例(调用libvlc_new函数)的时候设置. libvlc_new的定义: 从参数上可以感觉这个argc和argv一般都是传应用程序启动参数,所以就试着使用了vlc的启动参数来关闭预览和字幕, 果然有效,搞定!

  • 分享ini写入工具

    做自动部署时特地写的小工具,命令写ini文件 程序下载: writeINI

  • C版RC4加密解密函数库

    RC4是对称加密中比较好的加密算法,通过维护一个256长度的状态表实现一种基于密码的异或加密。下面是最近写的一个标准的RC4加密函数库,解密使用同样的函数即可。

  • 嵌入式linux的epoll的坑

    昨天搞到一个魔豆路由器,由于这个路由器开放权限,所以手就很痒的玩了起来。 把我以前写的epoll服务器编译后上传上去,发现在接收到数据的时候程序总没反应,经过调试,发现epoll的epoll_event传的data在epoll_wait时拿到总是空,所以初步断定是内核的问题,查看内核是linux matrix 2.6.36,这个版本epoll才加入没多久,有问题应该也是可能的。 下了结论,然后再想想其实这种嵌入式设备也没必要处理大并发,所以就用select去实现了服务器,意料之中的,效果非常棒,ab测试下的benchmark在64并发10000请求条件下,比路由器上的nginx要高很多(肯定的,因为还没做http请求解析)。接下来要优化一下服务器,再把http的解析加上去。 另外,魔豆路由器的系统目录默认是只读的,要设置自己的程序开机自动执行,需要执行writesys.sh才能进行配置,配置完成后再使用writesys.sh close 把目录改回只读。

  • C版的base64编码解码函数

    前两天发了java版的,现在把c的代码也帖出来,这个是用到我的websocket server工程中的代码。 base64.h

  • C语言梆定ActiveX事件

    我的博客里写的关于C语言访问COM的一些文章帮助了一些朋友,感到非常高兴。最近有几个朋友发邮件问过我C梆定ActiveX事件的方式,解答后感觉好像也有段时间没有写文章了,所以就详细地来写一篇关于C梆定和监听ActiveX事件的文章。 对C访问COM不是很了解的朋友,可以看我博客里的这些文章: C语言使用ActiveX控件 C语言访问Windows COM组件函数 本文链接: http://www.hoverlees.com/blog/?p=1793

  • Windows五子棋

    过年也有没事做耍电脑的时候,就用C在windows上写了个websocket客户端的五子棋,这个是用opengl画的,棋盘是3D的但做得简陋,用socket实现的websocket协议与以前写的websocket server通信,可以与以前实现的HTML5五子棋游戏对玩。 前面挂了个“电视机”,房间没人进入的时候是没有信号的状态,有人进入后会显示钓鱼脸先生。

  • Go语言调用C

    Go语言十分简单,跨平台,非常适用于网络应用的开发,本人相当看好。不过很多时候,还是需要扩展Go让Go实现更多的功能,如操作底层硬件、创建窗口等,这个要求可以通过调用C的方式实现。 本文以windows下的Go开发为例,linux完全一样。当然,Windows上首先要安装MinGW. http://www.hoverlees.com/blog/?p=1465 先做一个GO显示一个对话框窗口的简单示例。在go目录src/pkg下新建一个文件夹名为hover,新建一个hover.go文件,内容如下 与其说这是一个go源码文件,还不如把它理解成C语言的模板文件,cgo编译时,会把这个文件的内容转换成C程序并使用gcc编译,所以本人强列推荐将这个程序当成C程序阅读。程序中第二行的注释会在转换成C语言时做为C的代码。Msgbox会调用Windows系统函数MessageBox,并传入对应参数。由于go的数据类型与C语言的数据类型在内存中的表示不同,所以需要转换。Go与C的数据类型对有对应的转换方式,具体可以参看文档。因为MessageBox的第二第三个参数是LPSTR(unsigned char*),所以在调用时需要将Go的string转换成LPSTR类型。 接下来编译和安装函数包: 编译完成后,可以在程序中import这个hover库。下面写一个简单的程序调用刚刚写好的函数 最终生成的程序会弹出一个对话框,标题和内容都按程序指定的显示。

  • 基于websocket的火拼俄罗斯

    有vps就是好! 抽了几个周末的空闲时间完成了火拼俄罗斯的websocket服务器及客户程序,现在已经支持新版的websocket协议和苹果设备支持的websocket协议. 做这个的初衷是为了几个人在一起无聊的时候可以用手机连机玩些小游戏打发无聊时光.本人已经测试即使走最慢的移动的Edge网络,也不影响相互连机. 火拼俄罗期电脑的玩法跟QQ游戏的一样,上下左右方向键控制移动和旋转,空格直接下落,数字1,2,3,4使用道具给指定号码的玩家. 手机是通过在屏幕任意位置滑动时左右移动,点击自己游戏区域的上部变形,点击自己游戏区域的下部分下落,点击玩家编号向指定玩家使用道具. 游戏大厅地址: http://www.hoverlees.com/game 这个是直接登录链接: 点击这里直接登录