关于微软的Manifest的那些事

什么是Manifest?

在Windows中,manifest(清单)是一个XML文件,根据清单类型不同,可以分为四种:

Manifest描述
程序集清单描述名称、版本、资源、依赖的side-by-side程序集
应用程序清单描述共享的side-by-side的程序集版本和名称,可能包含私有side-by-side的程序集元数据
应用程序配置文件重定向每一个应用程序依赖的程序集版本
发布者配置文件使用发布者配置重定向一整块的程序集版本
阅读更多

常见注册表意义

前言

​ 最近老是遇到安装软件后环境不正常,有些软件安装时并不检测是否在运行,结果安装完之后需要重启电脑,还有一些不提示重启电脑但是安装完之后发现环境还是不正常。排查问题需要关注注册表,再次把我经常需要用到的注册表项列出来。

阅读更多

调用函数去安装自签的根证书

前言

​ 使用程序去安装根证书的目的是:使用自签的证书给软件进行签名,安装根证书之后,电脑就会信任该自签名软件,不会进行拦截。当然可以的话,掏钱买证书比较好。我见过有些软件会安装根证书,但都是key驱动或者CA厂家。安装根证书需要用户手动点击确定按钮,就好比你是否同意我们的协议。

​ 以下的证书都是cer证书,base64内容。其他格式可以转成cer格式

阅读更多

wxWidgets多线程及事件传递

前言

​ 最近忙着写项目,wxWidgets计划还有wxWidgets日志系统的拦截重定向,剩下一些比较杂的知识点,想到哪写到哪。比如进程间通信、调用外部程序后结束本程序(用于升级程序)、集成带窗口的ActiveX、创建单进程程序等,这些文档上基本都有。下面开始多线程的应用。

阅读更多

wxWidgets 事件学习

前言

wxWidgets事件连接有两种方式

1. 静态事件表(写法简单)
 2. 动态连接事件(适合动态生成控件的事件)

动态连接事件可以传递参数,适合自动生成一些控件

阅读更多

wxWidgets 自绘窗口

前言

​ 目前很多应用程序界面的标题栏都是自绘的,wxWidgets如果想要达到360安全卫士那种效果就需要重新定义一个Frame。

自绘Frame窗口

​ 首先定义一个自定类,这个类继承wxFrame,在里面重写wxFrame:

阅读更多

Cairo学习(一)

Cairo 介绍

最近在看Cairo,准备做ofd生成图片。技术选型选了几天,编译过Mesa3D,但是好像不太适合。最后选择Cairo 2D绘图库,因为是在Linux下跑的,特地安装了个CentOS7编译Demo,发现可以运行。Cairo有直接绘制图片,也有渐变和矩阵转换,比较适合。

Windows编译和Linux编译参考官网:https://www.cairographics.org/download/

绘图之前需要理解几个概念:

  • surface(画布)
  • context(上下文)
  • path(路径)
  • mask(遮罩)

暂时这些就够了,首先surface,我的理解是画布。有的画布是图片,有的画布是窗口。

阅读更多

王爽汇编学习(三)

标志寄存器

标志寄存器有以下三个作用:

  • 用来存储相关指令的某些执行结果

  • 用来为CPU执行相关指令提供行为依据

  • 用来控制CPU的相关工作方式

阅读更多

阿里面试题:计算两个字符串正整数的和

前言

​ 今天朋友给我发了一个面试题,让我想起了ACM的练习题,用C语言实现大数字的加法运算得出结果。这个面试题针对于java来计算两个字符串的和,不能转成int类型计算,也不能使用包装类计算。这两个字符串都只包含0到9的数字,并且都为正数。

阅读更多

王爽汇编学习(二)

​ CPU可以把一段内存当做栈,提供了push和pop指令。push代表进栈,pop代表出栈。利用两个寄存器来指示栈的内存范围,ss寄存器存储着是段地址,sp寄存器存储着是栈顶地址,即偏移地址。

寄存器数量不够的时候,一般使用栈用来暂时存储数据。

阅读更多