- 博客(34)
- 资源 (3)
- 问答 (4)
- 收藏
- 关注
转载 IME接口函数
最初这种方式工作得很好,但是后来发现在一些软件中出现兼容性问题如智能五笔在遨游中就存在这个问题,在遨游中的地址栏中打开智能五笔,当需要使用回退键来删除错误输入的编码时,会发现删除的不是编码窗口中的编码而是编辑器中的文字这是因为类似遨游这类软件主动接管了按键输入如处理一些控制键,当它发现这些控制键不在 WM_IME_STARTCOMPOSITION 和 WM_IME_ENDCOMPOSITION 这两个消息之间时就自己处理控制键而不是先交给 User.exe 了.那么如何输入文字呢?如果返回 TRUE,
2024-03-13 16:26:34
194
原创 用pixman库给bmp图像添加隐形文字水印
LSB 全称为 least significant bit,是最低有效位的意思。Lsb 图片隐写是基于 lsb 算法的一种图片隐写术,以下统称为 lsb 隐写,这是一种常见的信息隐藏方法。通常是把src图像写入dst图像,但我们肉眼去看却并不能分辨被写入src图像的dst图像与没有被写入的dst图像有任何区别。bmp图像是位图,比如 800 600大小的一张32位bmp图像,除了bmp文件头54字节之外,后面就是存储的位图信息,位图信息通常由rgba来排列,24位的bmp图像就是按照rgb来排列,每个像
2022-03-21 15:43:18
1469
原创 cairo和pixman库给bmp图片加文字水印
两个步骤1,用cairo库来生成一个图片,然后在上面把文字写到图片上主要用到cairo_image_curface_surface_create,生成一个空白的图(为了把文字向上写)cairo_public cairo_surface_t *cairo_image_surface_create (cairo_format_t format, int width, int height);.
2021-12-23 18:09:12
2139
原创 记录一次ffmpeg解码保存到文件花屏的问题
做一个ffmpeg解码yuv420的功能,码流为1920 1080时,解码和显示都正常,但当码流变成1680 1050时,显示出来就是花屏的定位过程收到的h264
2021-06-02 17:52:42
1341
原创 SDL2+FFMPEG的视音频播放器例子
SDL2+FFMPEG,没做视音频同步,音频效果比前一篇的QT+FFMPEG的要好一些SDL2,真挺好,跨平台,代码编译起来也挺方便的代码如下,没什么好说的// sdlplay.cpp : 定义控制台应用程序的入口点。//#include "libavcodec/avcodec.h"#include "libavformat/avformat.h"#include "libswresample/swresample.h"#include "libswscale/swscale.h"
2020-10-23 17:35:55
410
原创 QT5.9+FFMPEG的视音频播放器例子
例子很简单主流的视频格式是H264,音频格式是AACFFMPEG能解码,h264的视频码流解出来的YUV420裸视频流,转成RGB32格式,就可以用QT来直接画了 aac的音频码流解出来的PCM裸音频流,经过采样率的转换(44100或48000,转成合适的采样率),就可以播放了FFMPEG的各API就不细说了,雷神的博客很详细所谓视频,也就是一张张的图像,QT绘图,直接在paintEvent里画就好了QT的音频播放如下...
2020-10-23 16:34:44
919
1
原创 undefined reference to `__strncpy_chk‘ 解决方法
cygwin上编译spice客户端时,出现离奇错误/usr/lib/gcc/i686-w64-mingw32/9.2.0/../../../../i686-w64-mingw32/bin/ld: .libs/channel-main.o: in function `strncpy':/usr/i686-w64-mingw32/sys-root/mingw/include/string.h:240: undefined reference to `__strncpy_chk'查了资料,亲测,有两
2020-09-23 14:38:43
2328
原创 cygwin下编译ffmpeg
先把cygwin装好然后装一些东西apt-cygwgetmakegccyasmpkg-config应该还需要一些东西,编译过程中会告诉你需要装什么,跟着装就好了wget http://ffmpeg.org/releases/ffmpeg-4.3.1.tar.gztar -zxvfffmpeg-4.3.1.tar.gzmkdir ffmpeg_install./configure --prefix=../ffmpeg_install --enable-sha..
2020-09-15 18:44:36
417
转载 应用程序与驱动程序通信 DeviceIoControl
本文为转载,参考链接地址https://blog.youkuaiyun.com/li_wen01/article/details/80137566https://www.cnblogs.com/lsh123/p/7354573.htmlDeviceIoControl 将控制代码直接发送到指定的设备驱动程序,使相应的设备执行相应的操作。这种通信方式,就是驱动程序和应用程序自定义一种IO控制码,...
2020-01-19 17:35:57
1279
原创 windows 服务中启动交互式程序
最近项目中需要在windows服务中启动交互式程序,还是费了点劲,记录一下交互式程序也就是需要与人交互的程序,比如带有界面的程序,需要接收用户鼠标键盘消息的程序。比如 notepad.exe,cmd.exe非交互式程序也就是跑在后台,不需要人工干预,自己能跑得欢的程序 比如各种服务端程序,类似sshd.exe,各种bat脚本等windows程序中启动第三方程序通常有几种方式1...
2020-01-15 18:12:37
2366
1
原创 windows遍历文件,查找文件
遍历文件可以用_findfirst,_findnext, _findcloselong _findfirst( char *filespec, struct _finddata_t *fileinfo );返回值:如果查找成功的话,将返回一个long型的唯一的查找用的句柄。这个句柄将在_findnext函数中被使用。若失败,则返回-1。参数:filespec:标明文件的字符...
2020-01-09 17:19:48
1111
原创 spice-gtk源码分析1
spice-gtk作为spice三方(spice guest,spice server,spice client)客户端,主要负责显示guest端的桌面图像信息,并获取client端输入(键盘,鼠标等)消息 。client和server通信通过多个channel来传递消息。主通道传输控制消息(鼠标模式,vdagent消息(剪切板)等);显示通道传输图像数据输入通道传输client...
2019-11-20 17:57:58
2720
原创 图解YUV格式
YUV格式有两大类:planar和packed。对于planar的YUV格式,Y,U,V都是连续存放的,比如 YYYYUUUUVVVV对于packed的YUV格式,每个像素点的Y,U,V是连续交替存储的。RGB24,BGR24等等都是packed方式存储的YUV,分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值;而“U”和“V” 表示的则是色度(Chromi...
2019-07-31 15:59:06
787
原创 openssl实现RSA+AES加密
RSA+AES加密是传输数据过程中常用的一种加密方式,通讯双方都要实现加密解密过程,作为java,有接口,直接调用就好了,然而作为C语言这一端,加解密起来就比较蛋疼了,最近折腾了一下,这里留个脚印AES加密算法AES是一种对称加密算法,有几种加密方式(ecb,cbc,cfb等等),这里不细说,可以看这里https://blog.youkuaiyun.com/qq_28205153/articl...
2019-07-13 19:24:04
841
原创 base64编码
base64编码,用于把任意8位字符变成可打印字符,用于文本传输比如,json只能传输文本,如果需要传输二进制文件(比如图片),就可以用base64编码后传输标准一个base64编码的64个可打印字符为const char *base64char = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/...
2019-04-18 18:22:47
356
原创 字符集和字符编码
本文为网络收集,仅用于总结,以便日后回看参考 https://www.cnblogs.com/happyday56/p/4135845.html字符集(Charset)字符集,是一个系统支持的所有抽象字符的集合。字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。最初的时候,Internet上只有一种字符集——ANSI的ASCII字符集, 它使用7...
2019-04-12 18:14:40
287
原创 libcurl 支持sftp windows vs2015编译
以前用的libcurl,不支持sftp协议,所以要重编译libcurl,来支持sftp上传文件先down下来源码https://github.com/curl/curlwinbuild/BUILD.WINDOWS.txt里面有windows的编译方法Once you are in the console, go to the winbuild directory in the Cu...
2019-04-10 16:43:29
1671
原创 cJSON创建和解析使用接口分析
cJSON是一个c语言编写的构建和解析json格式数据的库源码在这里下载 https://github.com/DaveGamble/cJSON主要就两个文件cJSON.c和cJSON.h,直接一起链接进来就可以了创建json这里面最重要的一个结构为cJSON/* The cJSON structure: */typedef struct cJSON{ ...
2019-03-28 17:19:44
1330
原创 gtk+opengl窗口最小化的一个bug
在给gtk画的界面加上opengl绘图之后,发现最小化之后,任务栏的小图标直接消失了然后找到了这么一个api voidgtk_window_set_skip_taskbar_hint (GtkWindow *window, gboolean setting); Windows may set a h...
2019-03-11 14:47:40
728
转载 长度为0的数组
本文为转载,原地址为https://blog.youkuaiyun.com/gatieme/article/details/641313221 零长度数组概念众所周知, GNU/GCC 在标准的 C/C++ 基础上做了有实用性的扩展, 零长度数组(Arrays of Length Zero) 就是其中一个知名的扩展.多数情况下, 其应用在变长数组中, 其定义如下struct Packet{...
2019-03-01 11:19:07
4326
原创 gtk+opengl 之变色的三角形
#include <glib.h>#include <gtk/gtk.h>#include "GL/glew.h"#include <stdio.h>#include <math.h> static GtkWidget *window; FILE *fp; // Shaders 以定义字符串的方式给出const GLchar*...
2019-02-26 17:54:32
581
转载 GLSL 三种变量类型(uniform,attribute和varying)
本文为转载,原地址 https://blog.youkuaiyun.com/jackers679/article/details/68480851.uniform变量uniform变量是外部application程序传递给(vertex和fragment)shader的变量。因此它是application通过函数glUniform**()函数赋值的。在(vertex和fragment)shader程序内...
2019-01-31 17:36:15
6511
1
原创 gtk的界面加上opengl
gtk画的界面,加上opengl来绘图,直接上代码#include <glib.h>#include <gtk/gtk.h>#include "GL/glew.h"#include <stdio.h>static GtkWidget *window;FILE *fp;// Shaders 以定义字符串的方式给出const GLchar...
2019-01-30 18:16:21
2525
2
原创 glib g_main_loop的简单例子
写了一个应用g_main_loop的简单例子g_main_loop_new,创建了一个loop对象g_main_loop_run,当程序运行到这里,就进入了一个死循环,不过添加到loop中的逻辑还是在跑的,必须要有g_main_loop_quit()才能终止循环main_loop中,我们可以添加异步事件,用来执行回调函数,用到g_idle_add()guintg_idle_ad...
2018-12-07 18:31:45
4536
原创 pkg-config用处
pkg-config 列出一个库的安装信息比如 pkg-config --cflags --libs gtk+-3.0[root@BC ~]# [root@BC ~]# pkg-config --cflags --libs gtk+-3.0-pthread -I/usr/include/gtk-3.0 -I/usr/include/atk-1.0 -I/usr/include/at...
2018-11-21 18:13:02
369
转载 云计算,大数据,AI的关系
我今天要讲这三个话题,一个是云计算,一个大数据,一个人工智能,我为什么要讲这三个东西呢?因为这三个东西现在非常非常的火,它们之间好像互相有关系,一般谈云计算的时候也会提到大数据,谈人工智能的时候也会提大数据,谈人工智能的时候也会提云计算。所以说感觉他们又相辅相成不可分割,如果是非技术的人员来讲可能比较难理解说这三个之间的相互关系,所以有必要解释一下。 一、云计算最初是实现资源管理的灵活性...
2018-10-24 17:42:52
1235
转载 I/O空间映射
此文为转载,原地址http://www.cnblogs.com/hydah/archive/2012/04/10/2232117.htmlI/O空间-----I/O端口和I/O内存 首先上图,如下:外设中的寄存器被称为I/O端口,外设中的内存被称为I/O内存。二者合起来统称为I/O空间。 设备驱动程序要直接访问...
2018-07-26 14:25:52
783
转载 内存分页
什么是内存分页?我们知道,CPU是通过寻址来访问内存的。32位CPU的寻址宽度是 0~0xFFFFFFFF ,计算后得到的大小是4G,也就是说可支持的物理内存最大是4G。但在实践过程中,碰到了这样的问题,程序需要使用4G内存,而可用物理内存小于4G,导致程序不得不降低内存占用。为了解决此类问题,现代CPU引入了 MMU(Memory Management Unit 内存管理单元)。MM...
2018-07-20 11:16:05
2291
原创 main函数之前和之后调用函数
main函数执行之前,主要就是初始化系统相关资源: 1. 设置栈指针 2. 初始化static静态和global全局变量,即data段的内容 3. 将未初始化部分的全局变量赋初值:数值型short,int,long等为0,bool为FALSE,指针为NULL,等等,即.bss段的内容 4. 全局对象初始化,在main之前调用构造函数 ...
2018-07-17 10:54:30
1471
原创 centos7重启网络 Failed to start LSB: Bring up/down networking
本来机器好好的,突然发现虚拟机上不了网,ifconfig一看,ip没有了,遂重启网卡[root@cld network-scripts]# systemctl restart networkJob for network.service failed because the control process exited with error code. See "systemctl status ...
2018-06-21 17:00:19
2377
原创 centos7.5 libvirt源码安装
安装依赖这几个都是./configure过程中安装不下去需要安装的包,不过都会给出提示,哪些包需要安装# yum install libnl-devel#yum install libxml2-devel#yum install -y yajl-devel#yum install device-mapper-devel#yum install libpciaccess-devel下载源码包 ...
2018-06-20 19:09:11
1827
原创 centos7.5 qemu-kvm源码安装
1 先卸载系统的qemu-kvm# yum –y remove qemu-kvm#yum -y remove qemu-img#yum -y remove qemu-guest-agent2 安装依赖包#yum -y install gcc gcc-c++ automake libtool zlib-devel glib2-devel bzip2-devel libuuid-devel...
2018-06-20 18:32:12
1092
原创 centos7调整分区大小
最近centos7.5 /root 空间不够用了,而/home还有很多空间,所以重新分区,把空间挪过去一些查看磁盘空间 df -h卸载 /home umount /home/删除/home的逻辑分区 lvremove /dev/centos/home 扩展/root所在的逻辑分区 lvextend -L +600G /dev/centos/root同步/root的文件...
2018-06-20 16:33:21
7757
原创 windows进程监控
最近开发一个进程监控的服务,由于对windows api不熟,所以折腾了小两周才完全跑通,特记录一下1 由于需求需要根据进程名来进行监控,所以首先要根据进程名来获取进程句柄(同名进程可能有多个,比如,起了多个notepad.exe) //通过进程名获取进程句柄集// 返回值为 同名进程个数(不超过20个)int getProcessHandle(LPCWSTR lpName, HANDLE pH[...
2018-06-12 17:36:28
5732
qt + ffmpeg,视频播放器(带音频)的例子
2020-10-23
aes_rsa.zip
2019-07-13
qt,在MainWindow中的widget绘图,要怎么做才行?
2020-10-15
vs编译器优化疑问,为什么会优化成这样?
2019-04-15
glib的socket异步写,写失败,可能是什么原因?
2019-01-18
虚拟键盘驱动,无法卸载,求解决方法
2018-11-02
TA创建的收藏夹 TA关注的收藏夹
TA关注的人