Amp

使用MiniDumpWriteDump API 来生成程序的Dump

只谈情不闲聊 提交于 2020-08-04 14:34:29
MiniDumpWriteDump 是MS DbgHelp.dll 中一个API, 用于导出当前运行的程序的Dump. 这个dll程序系统中就有, 但是很多软件, 都在自己的安装目录下保存了这个.dll的最新的版本. 为了测试这个API, 参考网上一些资料, 写了一个简单的C++ 程序. 目的是当有异常发生的时候, 自动生成Dump文件供之后的分析. 有了Dump文件, 我们就可以使用WinDBG等调试器来分析异常发生时的情况. 其实这个功能很多软件都有, 比如QQ, 魔兽世界, 等等. 它们在出现了异常的时候会弹出一个对话框, 让用户输入异常发生时的情况, 然后把异常的dump文件用email发回, 供开发者们分析修改bug. 不过有一点, 这里需要程序的调试符号文件(pdb文件). 对于Debug版来说, 是生成的, 但是Release版来说默认是不生成的. 可以设置VC的编译器, 让它在Release版的时候也生成调试信息. 这带来一个新的问题, 因为.pdb里面是保存了源文件的信息的, 为了避免泄密, 可以采用VS中的CVPack工具, 从中去除敏感的信息. 程序需要使用 Dbghelp.h 和 Dbghelp.lib . 它们可以从MSDN找到. // 最主要的函数, 生成Dump static void DumpMiniDump(HANDLE hFile,

O SPF LSA

时光毁灭记忆、已成空白 提交于 2020-08-04 14:27:51
LSA 链路状态通告 LSA1( RouterLSA ) 所有设备产生,汇聚成LSDA;链路状态ID:源路由器ID LSA2( NetworkLSA ) SM网络DR产生,把LSA1打包,分发给other;链路状态ID:DR的ID LSA1 & LSA2 只在Area内传递,不能穿透ABR设备( A BR 域边缘路由器 Area Broad Route) 区别在网络类型不同 LSA3( Networksummary LSA ) ABR在Area间双向传递,LSA1和LSA2的合集;链路状态ID:目的网络地址 LSA5( Autonomoussystem external LSA )(自治系统外部) ASBR设备产生,AS之外的外部路由(RIP 静态)引入OSPF,使用Type-5 LSA描述这些外部路由 Type-5 LSA在整个OSPF域内泛洪,所有的路由器都知道到达外部的路由 链路状态ID:外部网络地址 LSA4( ASBRsummary LSA )( AS BR 自治系统边缘路由器 AS Broad Route) ABR设备产生注入到骨干Area0,为LSA5服务,实际为一条到达ASBR的主机路由 ,帮助那些与ASBR不在一个区域的路由器计算出到达ASBR的路由 与ASBR同属一个区域的路由器能够通过Area内泛洪的Type-1 Type-2 LSA计算出到达ASBR的路由

传统蓝牙HCI(Bluetooth HCI)的概念介绍

自闭症网瘾萝莉.ら 提交于 2020-08-04 10:26:12
一. 声明 本专栏文章我们会以连载的方式持续更新,本专栏计划更新内容如下: 第一篇:蓝牙综合介绍 ,主要介绍蓝牙的一些概念,产生背景,发展轨迹,市面蓝牙介绍,以及蓝牙开发板介绍。 第二篇:Transport层介绍,主要介绍蓝牙协议栈跟蓝牙芯片之前的硬件传输协议,比如基于UART的H4,H5,BCSP,基于USB的H2等 第三篇:传统蓝牙controller介绍,主要介绍传统蓝牙芯片的介绍,包括射频层(RF),基带层(baseband),链路管理层(LMP)等 第四篇:传统蓝牙host介绍,主要介绍传统蓝牙的协议栈,比如HCI,L2CAP,SDP,RFCOMM,HFP,SPP,HID,AVDTP,AVCTP,A2DP,AVRCP,OBEX,PBAP,MAP等等一系列的协议吧。 第五篇:低功耗蓝牙controller介绍,主要介绍低功耗蓝牙芯片,包括物理层(PHY),链路层(LL) 第六篇:低功耗蓝牙host介绍,低功耗蓝牙协议栈的介绍,包括HCI,L2CAP,ATT,GATT,SM等 第七篇:蓝牙芯片介绍,主要介绍一些蓝牙芯片的初始化流程,基于HCI vendor command的扩展 第八篇:附录,主要介绍以上常用名词的介绍以及一些特殊流程的介绍等。 另外,开发板如下所示,对于想学习蓝牙协议栈的最好人手一套。以便更好的学习蓝牙协议栈,相信我

简单分析PalletOne——一个连通区块链世界的跨链平台

大兔子大兔子 提交于 2020-07-29 10:22:05
目前有很多伪区块链项目,最主要的特点是,除了支付环节用到区块链的钱包以外,其余都和区块链没关系。业务是中心化的,账号是中心化的,数据也是中心化的,只有交易记录是去中心化的。 目前,区分是否是真区块链项目也很容易,就看数据是否上链。如果数据没有上链,那百分百是伪区块链项目,仅仅是用区块链来蹭热点的。但即使数据上链,也仅仅是达到了区块链的初级阶段,价值孤链,就是区块链世界的信息孤岛。在信息时代,信息从线下搬到线上。线下的信息传播只能依靠物理方式,比如报纸、杂志、电视节目,广播和口口相传。信息上了网,就形成了信息的高速公路。信息传递速度加快,于是改变了世界的脚步,推动了人类的进程。 但是信息的传输并不全是点对点的。大部分情况,信息要保存在一个地方,看到的人能看到,看不到的人便看不到。这就形成了信息孤岛。信息孤岛有天然形成的,也有人为制造的。人为制造的信息孤岛是为了利益。比如某些用户可见,某些用户不可见。比如普通用户不可见,会员可见。尤其是千人千面的内容分发算法,让很多人永远只能看到自己能看到的信息,而看不到他不曾看过的信息。这就是人为的信息孤岛。什么是后区块链时代的价值洼地?我觉得毫无疑问是:跨链。 PalletOne 既是一个跨链协议,更是一个高性能的“超级公链”。 PalletOne 以数字货币抽象、合约抽象和UTXO 抽象等接口的形式,将所有区块链底层封装到适配器中

StringFromUCS4

荒凉一梦 提交于 2020-07-29 10:15:41
String^ StringFromUCS4(const char32_t* element, int length) { StringBuilder^ result = gcnew StringBuilder(length); const char32_t* pUCS4 = element; int characterCount = 0; while (*pUCS4 != 0) { wchar_t cUTF16; if (*pUCS4 < 0x10000) { cUTF16 = (wchar_t)*pUCS4; } else { unsigned int t = *pUCS4 - 0x10000; unsigned int h = (((t << 12) >> 22) + 0xD800); unsigned int l = (((t << 22) >> 22) + 0xDC00); cUTF16 = (wchar_t)((h << 16) | (l & 0x0000FFFF)); } result->Append((wchar_t)*pUCS4); characterCount++; if (characterCount >= length) { break; } pUCS4++; } return result->ToString(); } 来源: oschina 链接:

Web前端最常用的技能整理,附最新前端学习资料和视频教程

不问归期 提交于 2020-07-29 09:46:32
一、框架与组件 bootstrap等UI框架设计与实现 伸缩布局:grid网格布局 基础UI样式:元素reset、按钮、图片、菜单、表单 组件UI样式:按钮组、字体图标、下拉菜单、输入框组、导航组、面包屑、分页、标签、轮播、弹出框、列表、多媒体、警告 响应式布局:布局、结构、样式、媒体、javascript响应式 第三方插件:插件管理 jQuery、zepto使用原理以及插件开发 支持amd、cmd、全局变量的模块化封装 $.fn.method = function(){} mvc/mvvm框架原理设计,vue/angular/avalon等 directive设计:html、text、class、html、attr、repeat、ref,可扩展 filter设计:bool、upperCase、lowerCase,可扩展 表达式设计:if-else等实现 viewmodel结构设计:例如数据,元素,方法的挂载与作用域 数据更变检测:函数触发,脏数据检测、对象hijacking polymer/angular2思想与设计思路 import技术 template和script引入方式 css样式命名空间隔离 简单复用第三方库 reactjs原理与使用 virtual dom单向数据绑定 js执行语法方式 UI由状态控制 commonJS/AMD/CMD 模块引入 模块定义 模块标识

js(Jquery)结合layui框架tip弹出层实现鼠标悬停弹出提示层,鼠标移开提示层消失的方法

我只是一个虾纸丫 提交于 2020-07-29 07:55:20
要实现上图所示的效果,即鼠标移到问号元素上,弹出提示信息,鼠标移开后提示层消失的效果,方法有三种: 方法一: 用原始的js实现,即在鼠标要悬停的元素上添加onMouseOver和onMouseOut捕获鼠标事件。(过时的方法)。 方法二:(推荐使用) JQuery的 mouseover()和mouseout()方法。例如使用此方法结合layui前端框架的tip提示层实现上述效果代码如下: HTML代码片段: <th>短信签名 <i id="dxqm" class="layui-icon layui-icon-help" style="font-size: 12px; color: #ff0000;"></i></th> js代码片段: var tip_index; $("#dxqm").mouseover(function(){ tips_index =layer.tips('是指短信内容里【】里的内容,一般用于写店铺简称,比如短信内容是:“用户1888888888于2020-03-24 15:33:20在本店购物获赠积分20分【永惠百货】”。其中“永惠百货”即为短信签名',this,{time:0}); }); $("#dxqm").mouseout(function(){ layer.close(tips_index); //关闭弹出层索引 }); 方法三: jQuery

XML内容中有单引号和双引号的解决

主宰稳场 提交于 2020-07-29 07:46:47
昨天,MTK前端的工程师反映,说返回的XML解决不了,原因是有双引号。我一想,接口并没有改动,再一想,那肯定是内容管理人员,在数据库中配置的内容有双引号。以前的内容,一直没有双引号,所以这个问题,一直没有暴露出来。看来,还是考虑不周全呀。 XML的内容中,要包括单引号或者双引号,可以使用下面的方法: 1,使用实体:单引号是&apos; ,双引号是&quot; 其实还有:&是&amp;,>是&gt; , <是&lt; ,空格是&nbsp; 等。 <? xml version="1.0" encoding="UTF-8" ?> < example content1 ="这里有单引号实体&apos;" content2 ="这里有双引号实体&quot;" /> 2,解决单引号和双引号的另外一个小技巧是:如果内容中有单引号,就用双引号括起来,如果内容中有双引号,就用单引号括起来。 <? xml version="1.0" encoding="UTF-8" ?> < example content1 ="内容有单引号'用双引号括起来" content2 ='内容有双引号"用单引号括起来' /> 3,XML字符实体表 来源: oschina 链接: https://my.oschina.net/u/4408413/blog/4321977

flutter组件5【上滑加载】

隐身守侯 提交于 2020-07-29 07:42:17
一、解释 flutter并没有提供上滑加载的组件,我们需要像安卓一样 进行滚动监听,然后处理footer,header,list数组等变量来实现 二、 ScrollController 上滑加载用到的 三、核心 ScrollController _scrollController = new ScrollController(); _scrollController.addListener((){ if(_scrollController.position.pixels == _scrollController.position.maxScrollExtent) { _getMore(); } }); pixels 获取当前位置的像素值,maxScrollExtent 获得 SrollController 监听控件可以滚动的最大范围 那么这个判断,则是判断是否滑动到最底部,如果是的话,就开始加载更多数据 _getMore加载更多数据的方法 enum LoadingStatus { STATUS_LOADING, STATUS_COMPLETED, STATUS_IDEL, } 一些枚举变量,用作后面的判断 四、详情的说明 1.这是一个列表的动态加载 由于循环是从0开始的,所以数组长度等于当前循环最后一位的时候,出现加载效果条 Widget getListView() {

Thymeleaf货币转换

眉间皱痕 提交于 2020-07-29 07:32:11
#概述 本文,将介绍如何使用页面组件Thymeleaf对货币进行自动转换 #Maven依赖 < dependency > < groupId > org.springframework.boot </ groupId > < artifactId > spring-boot-starter-thymeleaf </ artifactId > < version > 2.3.0.RELEASE </ version > </ dependency > #创建thymeleaf页面和Controller 在resources/templates/下创建页面currencies.html <!DOCTYPE html> < html xmlns = "http://www.w3.org/1999/xhtml" xmlns:th = "http://www.thymeleaf.org" > < head > < meta charset = "UTF-8" > < title > Currency Format </ title > </ head > < body > < h3 th:text = "${#numbers.formatCurrency(param.amount)}" > </ h3 > </ body > </ html > 创建CurrencyController