自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

就是那个党伟

早起的鸟儿有虫吃,早起的虫虫吃嫩叶。

  • 博客(256)
  • 资源 (20)
  • 收藏
  • 关注

原创 [Tracker] linux 搭建 BitTorrent

虚拟机: vmware 15虚拟机系统:ubuntu 20.04本机系统: win10Ubuntu 搭建BitTorrent本文是在虚拟机中搭建 bitrtorrent 和 web 平台,生成BT种子后,在本机可以下载一. 安装 BitTorrent1. 安装 python (如果已有 python 则跳过此步) sudo apt-get install python2. 通过命令安装 BitTorrent sudo apt-get inst...

2020-12-18 21:13:37 2024 2

原创 [libtorrent] windows搭建 libtorrent 开发环境

操作系统:win10开发工具:VS2019(参考文档:libtorrent)搭建 libtorrent 步骤:一. 安装 vcpkg 和 boost1.安装 vcpkg 到本地 git clone https://github.com/microsoft/vcpkg2.执行bootstrap-vcpkg.bat 脚本 .\vcpkg\bootstrap-vcpkg.bat3.添加vcpkg环境变量 环境变量->PTAH->添加 vcpkg...

2020-12-17 15:54:26 2318 6

原创 [ubuntu传送门] ubuntu官网下载太慢解决办法

下载连接:http://mirrors.163.com/ubuntu-releases/20.04/

2020-12-17 11:45:49 254

原创 chromium 之 CSS 解析过程(代码调试)

平台: WIN10调试工具: vs2019chromium: 78.0.3904.108解析网站: www.so.com(有条件的小伙伴建议根据文章里的断点,自己调试,分析堆栈和查看数据的结构,可能会有不同的理解)CSS解析过程下图是CSS的解释过程,具体是从CSS字符串经过CSS解释器处理后变成渲染引擎的内部规则表示的过程未完待续...

2020-12-15 11:47:11 759

原创 chromium 之 DOM tree 解析和创建(代码调试)

平台: WIN10调试工具: vs2019chromium: 78解析网站: www.so.com(有条件的小伙伴建议根据文章里的断点,自己调试,分析堆栈和查看数据的结构,可能会有不同的理解)WebKit构建DOM所使用的主要基础设施类下图是 chromium webkit 构建 dom 树时,主要用到的类,我们会在下图中部分类的实现中,进行跟踪,分析 dom 的构建过程DocumentLoader(src\third_party\blink\ren...

2020-12-09 12:01:25 759 2

原创 [C++] CreateThread() 与 _beginthread() 的区别

在windows开发中,我们有两种创建线程的方式:第一种:Windows API CreateThread() 来创建线程;用ExitThread() 来退出线程;第二种:调用MSVC CRT的函数 _beginthread()或_beginthreadex()来创建线程;用 CRT的_endthread() 来退出线程。而实际上,_beginthread()的内部实现,也是通过调用CreateThread() 来实现的创建线程。这两种方式的区别在于,CreateThread()...

2020-12-04 11:26:39 719

原创 [git传送门] git官网下载太慢解决办法

传送门:git-for-windows Mirror (taobao.org)最下边的即最新版本,点击后,如下图:windows下载红色这条即可。

2020-12-03 19:47:05 1280

原创 浏览器提示:你的连接不是专用连接的解决方法

1. 调整键盘为英文输入状态2. 鼠标点击当前页面任意位置,然后依次按键:thisisunsafe输入完成后,页面会自动刷新,即可正常访问。

2020-12-03 17:13:15 74756 42

原创 vt 在ubuntu交叉编译windows的执行文件

参考文档:https://www.v2ray.com/developer/intro/compile.html系统:ubuntu18.04编译步骤:1.安装goclang

2020-12-02 17:30:04 289

原创 chromium 之 ipc (mojo) 消息机制

Mojochromium 中的 ipc(进程间通信) 采用 mojo,使用双向的消息管道,每个终结点都有一个传入消息队列,并在一个终结点上写入消息,有效地将该消息排队到另一个 (对等 ) 终结点上。通过 mojom 文件来描述并记录接口Amojomfile describesinterfaces, which are strongly-typed collections ofmessages. Each interface message is roughly analogous to a...

2020-12-02 11:49:52 5601 4

原创 chromium 之 newtab (新标签页)默认页的逻辑

chromium 为多进程架构,每次打开新标签页时,都会启动一个新的 renderer 进程。该进程默认打开的页面代码逻辑如下:browser_tab_strip_controller.cc 中的CreateNewTab() 负责获取当前用户配置的默认打开页。堆栈如下:...

2020-11-29 16:04:54 2004

原创 chromium 之 webui 调用逻辑

chromium之webui详细文档参考:WebUI Explainer (googlesource.com)本文主要讲述webui的调用逻辑。webuiwebui 用于管理chrome浏览器,通过 chrome://url 的方式,可以进行不同功能的访问。webui 的特殊性:1. 提供通过 chrome://url 的方式进行chrome管理页面的访问2.允许 chrome 通过 CallJavascriptFunction() 在渲染器中执行任意的 JavaScript3.允许通..

2020-11-29 15:33:55 746

原创 [XCODE] xcode 同时支持安装多个SDK的方式

由于MAC从10.15版本升级到 11.0.1 (MACOS BIG SUR) ,导致 XCODE 的 SDK 版本强制升级到 11.0 ,而笔者的代码需要在 SDK 10.14 环境才能编译。因此需要使最新版本的 XCODE 兼容 SDK10.14.系统版本: macOS11.0.1 (MACOS BIG SUR)XCODE-SDK版本:MacOSX11.0.sdk ,兼容MacOSX10.14.sdk方法如下:1. 安装最新系统和 xcode2...

2020-11-27 11:25:52 4440

原创 头文件编译报错:unterminated conditional directive

结尾添加 #endif

2020-11-25 16:46:55 1623

原创 DLL的加载和卸载顺序 (显式调用)

源码路径:dangwei-90/DllLoadAndFree (github.com)隐式调用的加载和卸载顺序:[DLL] dll 的加载和卸载顺序 (隐式调用)_二七-CSDN博客dll 分为显示加载和隐式加载。假设 program 加载 dllA , 而dllA 加载 dllB, 显示加载顺序如下:1. program 启动2. dllA被加载3. dllB被加载这是因为 dllB 是被 dllA 动态加载的,所以 dllA 一定先被 program 加载。同理,显示卸载顺序...

2020-11-24 17:55:23 1170

原创 DLL的加载和卸载顺序 (隐式调用)

源码路径:dangwei-90/DllLoadAndFree (github.com)dll 分为显示加载和隐式加载。假设 program 加载 dllA , 而dllA 加载 dllB, 隐式加载顺序如下:1. program 启动2. dllB 被加载3. dllA 被加载这样是为了保证 dllA 被加载时,一定是可用的,所以会先加载 dllA 所依赖的 dllB。同理,卸载顺序如下:1. dllA 被卸载2. dllB 被卸载3. program 退出这样也是保证被 dll.

2020-11-24 17:29:08 750

原创 [DLL] DLL动态库没有生成LIB的解决方法

在导出函数在声明和定义时,都一定要有关键字 _declspec(dllexport) ,这样才会同时生成 .dll 和 .lib 文件。demo:接口头文件:#pragma onceextern "C" _declspec(dllexport) int addtest(int a, int b);实现:#include "stdio.h"#include "pch.h"extern "C" _declspec(dllexport) int addtest(int a, .

2020-11-24 11:34:22 4842

原创 [C++] 线程同步的四种方式和demo

源码路径:dangwei-90/ThreadSync: 线程同步 (github.com) (https://github.com/dangwei-90/ThreadSync)编译平台:win10编译工具:vs2019语音: C++下边直接看demo,一目了然。1.线程未同步的demo// thread_sync.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>#include &l...

2020-11-23 16:41:20 480

原创 extern C 的用法

extern "C"的作用:C++代码中,用 extern "C" 修饰的代码,会按照C代码编译。解决的问题:C++支持函数重载,编译器编译函数的过程中会将函数的参数类型也加到编译后的代码中,而不仅仅是函数名; C语言并不支持函数重载,因此编译C语言代码的函数时不会带上函数的参数类型,一般只包括函数名。因此为了C++可以兼容调用C的代码,采用 extern "C"。eg:// 1.修饰整块代码#ifdef __cpluscplusextern...

2020-11-09 23:05:39 421

原创 [C++11] nullptr 和 NULL

在工作中,避免产生“野指针”最有效的方法,是以下两点:1.在定义指针的同时完成初始化操作,即便该指针的指向尚未明确,也要将其初始化为空指针。2. 在delete释放该指针后,对该指针赋值为空指针。C++11 新增关键字 nullptr ,专门用来初始化空类型指针;而 NULL 则表示 0。eg:#include <iostream>using namespace std;void test_null(void* v) { cout << "void*" .

2020-11-03 20:37:47 401

原创 [C++11] constexpr 关键字,以及 constexpr 与 const 的区别

C++11 新特性中,添加constexpr 关键字constexpr 特性:1. constexpr 修饰普通变量,表示常量表达式;2. constexpr 修饰函数。该函数需要满足: a.只能包含一条 return 返回语句; b.函数必须有返回值; c.函数在使用之前,必须有对应的定义语句; d. 返回的表达式必须是常量表达式。constexpr 和 const 的区别constexpr 关键字修饰的是常量;所谓常量表达式,指的就是由多...

2020-11-03 11:18:08 443

原创 [C++] volatile 关键字

C/C++ 中的 volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。示例:// 环境// system: win10 x64// 编译器: vs2019// release & debug , x86// 注意:x64需要安装其他工具,才能支持汇编指令,所以在x86平台测试。#include &lt.

2020-10-31 13:55:59 201

原创 [C++11] decltype 关键字

decltype (declare type) 是C++11 新增的一个关键字,它和 auto 的功能一样,都用来在编译时期进行自动类型推导。用法:decltype(exp) varname = value;对比auto : auto varname = value;auto 根据=右边的初始值 value 推导出变量的类型,而 decltype 根据 exp 表达式推导出变量的类型,跟=右边的 value 没有关系。注意:exp 就是一个普通的表达式,它可以是任意复杂的形式,但是我们必须..

2020-10-31 13:27:42 270

原创 [C++11] auto 关键字

C++11 赋予 auto 关键字新的含义,使用它来做自动类型推导1.简单赋值用法以及和const配合使用// 普通赋值用法auto n = 27; // auto 表示 intauto m = 27.7; // auto 表示 doubleauto i = &n; // auto 表示 int*auto url = "https://blog.csdn.net/dangwei_90"; // auto 表示 const char*// 配合const使用用法int

2020-10-30 11:48:43 466

原创 [C++]访问者模式

在访问者模式(Visitor Pattern)中,我们使用了一个访问者类,它改变了元素类的执行算法。通过这种方式,元素的执行算法可以随着访问者改变而改变。这种类型的设计模式属于行为型模式。根据模式,元素对象已接受访问者对象,这样访问者对象就可以处理元素对象上的操作。 // 此文件包含 "main" 函数。程序执行将在此处开始并结束。//// 参考大话设计模式#include <iostream>#include <vector>using namespace s

2020-10-22 22:40:17 216

原创 [C++]解释器模式

解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。 // 此文件包含 "main" 函数。程序执行将在此处开始并结束。//// 参考大话设计模式#include <iostream>#include <vector>using namespace std;class Content;class I

2020-10-22 22:14:44 256

原创 [C++]享元模式

// 此文件包含 "main" 函数。程序执行将在此处开始并结束。//// 参考大话设计模式#include <iostream>#include <vector>using namespace std;class Flyweight {public: virtual void Operation(int num) = 0;};class ConreteFlyweight : public Flyweight {public: void Ope...

2020-10-21 22:24:08 148

原创 [C++]中介者模式

中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性。这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护。中介者模式属于行为型模式。 // 此文件包含 "main" 函数。程序执行将在此处开始并结束。//// 参考大话设计模式#include <iostream>#include <vector>using namespace std;class Colleague;class Media

2020-10-20 22:29:08 260

原创 [C++]责任链模式

责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为型模式。 // 此文件包含 "main" 函数。程序执行将在此处开始并结束。//// 参考大话设计模式#include <iostream>#include <vector>using namespace std;class Handler {public: vir

2020-10-19 22:02:14 159

原创 [C++]命令模式

命令模式,将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志;以及支持可撤销的操作。 // 此文件包含 "main" 函数。程序执行将在此处开始并结束。//// 参考大话设计模式#include <iostream>using namespace std;class Receiver {public: void Action() { cout << "receive do action." <<

2020-10-17 14:16:46 184

原创 [C++]桥接模式

桥接模式即将抽象部分与它的实现部分分离开来,使他们都可以独立变化。桥接模式将继承关系转化成关联关系,它降低了类与类之间的耦合度,减少了系统中类的数量,也减少了代码量。 // 此文件包含 "main" 函数。程序执行将在此处开始并结束。//// 参考大话设计模式#include <iostream>using namespace std;class Implementor {public: virtual void Operation() = 0;};cla

2020-10-16 22:48:02 337

原创 windbg 常用调试命令总结

1.显示所有线程 ~ // 显示所有线程 ~*2.显示堆栈 kb // 显示当前堆栈 ~0 k // 显示第0个线程的堆栈,主线程

2020-10-16 11:15:13 2911

原创 [windbg] windbg symbol符号配置

http://msdl.microsoft.com/download/symbols需翻墙!

2020-10-15 22:30:18 828

原创 [C++]单例模式

一个类的实例,具有全局变量的特点,在任何位置都可以通过接口获取到那个唯一实例。Demo包含C++11 static的demo 和 加锁方式的demo。单例 Singleton 是设计模式的一种,其特点是只提供。

2020-10-15 21:58:30 187

原创 [C++]迭代器模式

迭代器模式(Iterator),提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。 // 此文件包含 "main" 函数。程序执行将在此处开始并结束。//// 参考大话设计模式#include <iostream>#include <vector>using namespace std;class Iterator {public: virtual string First() = 0; virtual string Nex

2020-10-14 22:23:03 177

原创 [C++]组合模式

组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。 // 此文件包含 "main" 函数。程序执行将在此处开始并结束。//// 参考大话设计模式#include <iostream>#include <vector>using namespace std;class Component

2020-10-13 22:29:58 508

原创 [C++]备忘录模式

备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。// 此文件包含 "main" 函数。程序执行将在此处开始并结束。//// 参考大话设计模式#include <iostream>using namespace std;class Player {public: void SetCurrentState(int vitality, int attack, int defence) { vital

2020-10-12 22:39:03 216

原创 [C++]适配器模式

适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。// 此文件包含 "main" 函数。程序执行将在此处开始并结束。//// 参考大话设计模式#include <iostream>usi

2020-10-10 22:47:25 143

原创 1475. Final Prices With a Special Discount in a Shop

class Solution {public: vector<int> finalPrices(vector<int>& prices) { vector<int> ret = prices; for(int n = 0; n < ret.size(); n++) { for (int m = n+1; m < ret.size(); m++) { if.

2020-08-01 16:31:13 212

原创 1480. Running Sum of 1d Array

class Solution {public: vector<int> runningSum(vector<int>& nums) { vector<int> ret = nums; int total = 0; for(int n = 0; n < ret.size(); n++) { total = total + ret[n]; ret[n] =.

2020-08-01 16:29:04 136 1

DotNetFramework_3.5.zip

.net Framework是微软的.net框架程序的运行库。.NET Framework 3.5用于构建具有视觉上引人注目的用户体验。NET Framework 3.5是支持生成和运行下一代应用程序和XML Web Services 的内部Windows 组件。Microsoft .NET Framework 3.5实现跨技术边界的无缝通信,并且能支持各种业务流程。

2020-04-27

PcShutDownByTime.zip

定时关机小程序。 源码路径:https://github.com/dangwei-90/PcShutDownByTime

2020-04-26

StopSysSleep.zip

windows系统,防止系统睡眠和休眠的小工具。 源码路径:https://github.com/dangwei-90/StopSysSleep

2020-04-26

gsview和ghostscript(不需要注册码).rar

gsview和ghostscript(不需要注册码).rar

2017-11-08

189个常用修改注册表REG

189个常用修改注册表的REG文件 本人亲测,安全有效!

2013-09-01

104个常用注册表文件

压缩包内文件格式: 可执行文件 附件来源: 互联网 运行平台: Windows平台 是否经本人验证: 是 附件性质: 免费 详细说明: 还在苦苦的找寻吗?104个常用注册表文件 本资料共包含以下附件: 104个常用注册表文件.rar

2013-09-01

chm类型的VB下API

VB的API调用,CHM格式,类似于MSDN,方便查询,搜索

2013-08-31

微软Overlay Linker3.60编译器

微软Overlay Linker3.60编译器 经过本人亲测,可以完美使用。

2013-05-01

C++笔试题[c++]

C++笔试题。 常见笔试题和常见题库。 供C++童鞋面试笔试时参考。

2013-04-30

企业管理系统【C/C++】

企业管理系统【C/C++】 只实现了简单功能,可以作为毕业设计使用。 内含源代码。

2013-04-30

Visual+C++软件项目开发实例源码

Visual+C++软件项目开发实例源码 配合 Visual+C++软件项目开发实例 书使用。

2013-04-27

dotNet特性演示软件(附加源码)

dotNet特性演示软件(附加源码) 取自 --软件项目开发实例

2013-04-27

MyDraw绘图软件(附加源码)

MyDraw绘图软件(附加源码) 取自 --软件项目开发实例

2013-04-27

网络数据管理系统(附加源码)

网络数据管理系统(附加源码) 取自 ----=软件项目开发实例

2013-04-27

Hook钩子教程

钩子的简单使用,适合初步想要了解的童鞋 钩子的函数使用

2013-04-24

MFC简单教程

关于MFC的学习与使用 适合初学者。可以简单了解MFC

2013-04-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除