VC++删除老版本软件的桌面快捷方式及源码
删除桌面快捷方式其实是删除桌面上的快捷方式文件,那我们如何去删除桌面快捷方式文件呢?软件可能已经发布过多个版本,其中的一些版本的快捷方式文件名称可能了多次改动,程序中不可能记录每个版本的快捷方式名称,没法直接去删除快捷方式文件。本文就给出一种有效的处理办法,能很好地满足实际的需求。
实现思路
删除指定程序的桌面快捷方式的具体思路是,先获取桌面的完整路径,然后遍历桌面文件夹中的所有.lnk快捷方式文件,然后通过IShellLink COM接口去获取快捷方向的exe名称,通过比对exe名称,确定是我们软件的桌面快捷方式。找到快捷方式文件,删除即可。一般情况下,软件的exe程序是不怎么变动的,所 ...
仅需要头文件的c++库
FMT
github
C++格式化字符串一直是个老大难,要么用系统API,要么用C库函数,要么自己写。最近std::format终于在C++20来了。。。cpp在一边不停加入新特性,实用的东西还是不少,比如cpp11的多线程支持,cpp17的filesystem等等,而网络库还不知道在哪。但是这些东西似乎来得太迟。cpp的现状却是很惨。其它语言很快崛起很大的原因就是基础库很全,你可以烂,可以不好用,但你不能没有啊。什么轮子都要自己造。吐槽完毕。
而vs2019仍然没有加入std::format支持,所以先自己用fmt::format。当然这个库可以编译成动态静态库,也可以header-only ...
开源多媒体播放器盘点
媒体播放器
自己动手让VISUAL STUDIO的WIN32向导支持生成对话框程序
文章来源 https://www.freesion.com/article/730931766/
Visual Studio的MFC向导可以生成基于对话框的程序,而win32向导却不支持,是不是很不给力呢?虽然VAX可以直接插入对话框的代码段,但还是没有直接生成来得爽,下面就动手来改造吧。
本文所做的修改仅在自己的VS里测试通过,大家修改之前请备份原文件。
那我们需要改什么呢?看图吧:
首先,找到"VS安装目录\VC\VCWizards\AppWiz\Generic\Application",如我电脑上的目录就是
“D:\Program Files\Microsoft V ...
c++ 日志库之 —— SPDLog
简介
SPDLog 是一个开源的、快速的、仅有头文件的C++11 日志库,它提供了向流、标准输出、文件、系统日志、调试器等目标输出日志的能力。它支持的平台包括Windows、Linux、Mac、Android;有一下特性:
非常快,性能是它的主要目标;
仅包括头文件;
日志的格式化处理使用开源的fmt库;
可选的printf语法支持;
非常快的异步模式(可选),支持异步写日志;
自定义格式;
条件日志;
多线程/单线程日志;
各种日志目标:可对日志文件进行循环输出;可每日生成日志文件;支持控制台日志输出(支持颜色);系统日志;Windows debugger;较容易扩展自定义日志目标;
支持 ...
将Libcef打造为win32控件(非MFC)
初识Libcef
Libcef 的完整发行包中自带示例代码,可以用cmake生成工程后编译运行。我的目的将cefclient编译为DLL,由它与libcef打交道,最终的exe与所有dll互无编译依赖,通过 GetProcAddress 动态对接。
参考:notepad++插件、miniblink-wke控件的实现。
首先,编译 cefclient.exe,记得关闭“treat warning as error”。关闭这种选项在项目设置里的"all options"中搜索即可。
编译成功后,显示出有几个按钮、一些菜单的简单浏览器界面。
2020年了,LIBCEF的演示项目一 ...
常见的Shell 与 释伴(#!) Shebang 符号
常见的Shell
shell 介绍
Linux 是一个开源的操作系统,由分布在世界各地的多个组织机构或个人共同开发完成,每个组织结构或个人负责一部分功能,最后组合在一起,就构成了今天的 Linux。例如:
Linux 内核最初由芬兰黑客 Linus Torvalds 开发,后来他组建了团队,Linux 内核由这个团队维护。
GNU 组织开发了很多核心软件和基础库,例如 GCC 编译器、C语言标准库、文本编辑器 Emacs、进程管理软件、Shell 以及GNOME 桌面环境等。
VIM 编辑器由荷兰人 Bram Moolenaar 开发。
Windows、Mac OS、Android 等操作系统 ...
Git 的三个区域详解
Git | merge |
Linux中的Diff和Patch
本文主要记录两个命令的学习情况:diff 和 patch。diff 和 patch 是一对工具,使用这对工具可以获取更新文件与历史文件的差异,并将更新应用到历史文件上。在数学上说,diff就是对两个集合的差运算,patch就是对两个集合的和运算。
简单的例子
使用这个例子来说明如何进行文件的对比和打补丁。
这里有两个文件 original.txt 和 updated.txt,如下:
1234567#include <stdio.h>function old(){ printf("This is a file\n"); ret ...