Tag: C/C++
All the articles with the tag "C/C++".
C++20 模块入门指南
Published: at 09:16 AM如果你正在学习 C++ 或从事 C++ 开发,那么你一定使用过头文件(header file)来实现代码的模块化。然而,在 C++ 早期版本中,头文件带来了很多问题,比如编译速度慢、头文件依赖复杂等等。因此,在 C++20 中引入了一个新的特性...
IE获取元素样式
Published: at 04:01 PMIE浏览器获取元素样式,通过正常方式获取不了。 这种方法获取不了: CComPtr<IHTMLStyle> pHtmlStyle; if (FAILED(mpHtmlElement->getstyle(&pHtmlStyle)) && pHtmlStyle = NULL) { if (FAIL...
beast websocket demo
Published: at 05:09 PMclient // client.cpp 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // include <boost/beast/core.hpp> include <boost/beast/websocket.hpp> include <boost/asio/connect.hpp> include <boo...
visual studio修改堆栈保留大小和提交大小
Published: at 11:27 AM如果程序中使用的堆栈超过1M(默认)你就需要进行这个设置,但是设置太大又会造成虚拟内存过高。如果你明确的知道哪一个线程使用的 堆栈多高,可以只针对那个线程进行设置,这样不会影响到整个程序。 Qt线程设置堆栈大小...
卸载程序——自删除
Published: at 07:16 PM问题 卸载程序在卸载的时候怎么把自己给删掉 分析 我们知道在删除文件的时候,这个文件不能被打开,如果是程序那程序不能在运行中。 通常卸载之前我们要求用户先关闭运行中的程序,或者强制杀掉进程,否则删除文件...
datetime封装常用功能
Published: at 10:46 AMdatetime支持windows,linux,异常安全,封装了常见的转换函数,精确到毫秒。 支持常见日期的计算、修改、比较。 pragma once include <string> include <ctime> class DateTime { public static Da...
boost asio + protobuf封装通信库
Published: at 10:35 AM方了方便客户端服务端网络部分的开发,使用boost asio和protobuf封装了一个通信库。 特点 - 接口简单 - 高性能 - 自动重连,客户端支持多IP寻址 - 支持心跳 - 包含glog日志库可以直接使用 - 允许设置压缩包 ...
DLL注入和卸载
Published: at 10:35 AMdll本身是不能运行的,它可以被可执行文件调用来执行,这种是主动去调用dll,反过来也可以将dll注入到指定进程地址空间去执行。 注入程序 使用命令行的方式提供了注入dll和卸载dll两个方法 // inject.cpp 此文...
Qt QTextEdit文本高亮
Published: at 05:13 AMQTextEdit支持HTML展示,这样实现高亮就很简单了。 需求 QTextEdit展示了一些信息,增加一个搜索框,搜索时实时高亮出搜索的内容并滚动到最近搜索到的地方。 实现 连接textChanged信号,在onSearchChanged中实现...
C++ 多线程有序锁和无序锁
Published: at 08:45 AM正常情况下如果多个线程被阻塞,当使用notifyall或者notifyone来唤醒被阻塞的线程时是无序的,你不能知道被唤醒的是哪个线程。当然你可能说我不在意被唤醒的线程是哪一个,但是有些场景需要控制被唤醒的顺序,即:先加锁的线程让它先被唤醒。 首先,这里讨论的不是简单的使...