自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

李正浩的博客

好的习惯能够让人终身受益

  • 博客(241)
  • 资源 (4)
  • 收藏
  • 关注

原创 [WPF]Win10便签软件

项目地址Github:项目地址  软件截图  项目中用到的技术和问题 [WPF]限制程序单例运行 [WPF]创建系统栏小图标 [WPF]程序随系统自启动 [WPF]xml序列化以及反序列化数据 [WPF]项目整合Metro和MaterialDesignInXamlToolkit UI框架 [WPF]鼠标移动到Button颜色改变效果设置 一个...

2019-01-29 15:30:32 843 4

原创 .Net Core Webapi集成ELK+elastalert日志报警(Docker部署)

Docker搭建ELK然后在该文件目录下运行命令:等待安装完成即可新建nlog.config文件:在appsettings.json内配置对应的地址:添加Nlog替换自带的logger测试调用接口写入数据,打开kibana查看:数据成功写入如果是用的我的compose文件及配置文件的话,部署完成后插件应该是直接安装完成了的,进入kibana页面后,如下图显示,如果有elast...

2022-06-26 11:22:16 748

原创 RabbitMQ基本概念——Channel、RoutingKey、Exchange

RabbitMQ基本概念——Channel、RoutingKey、Exchange博客原地址链接:http://www.lizhenghao.site/blog/2022/02/07/191先上一张RabbitMQ的结构图:rabbitMQ工作流Channel(信道)Channel是生产者消费者和RabbitMQ通信的方式,它是建立在TCP连接之上的一个虚拟连接,也就是类似于生产者A要和RabbitMQ通信,那么A在程序运行的时候先起一个TCP连接连上RabbitMQ,后面每次需要发消息的时候就

2022-02-19 16:42:01 2998

原创 Jenkins笔记(二)————部署Vue项目

我的博客http://www.lizhenghao.site/环境搭建Jenkins环境搭建参考我的上前一篇文章【Jenkins CI/CD环境搭建】服务器需要的配置如果仓库是公开的,就什么都不需要配置,否则需要使用账号密码或者密钥的方式如果服务器没装git,需要用yum install git先装个git开始部署点击创建item(新建任务)点击配置-》这里需要配一下nodejs的环境,在系统全局环境设置中记得勾上nodejs的自动安装,选择合适的版本(和本机测试环境的保持一

2022-02-03 16:09:34 2676

原创 Jenkins笔记(三)部署.Net Core Webapi项目

我的博客博客首页前言本次部署未不使用docker,而是采用拉取代码后编译运行的方式。下面先给张部署的流程图,再介绍部署的配置文件和可能存在的坑开始部署首先,进入Jenkins首页,选择新建一个任务,这里选择流水线:这里选流水线只是为了练习一下pipeline的语法和部署流程,起始选自由风格其实更简单选择pipeline之后什么都不用配置,只需要编写脚本即可,这里有两种写脚本的方式,第一种是直接在jenkins上写,第二种是在项目中写sh文件,然后jenkins中只需要bash xxx.s

2022-02-03 16:07:12 1824

原创 dotnet restore出现SSL错误的解决方案

我的博客博客链接错误场景当我把.net core webpai项目部署到centos上后,使用dotnet restore命令还原时,出现如下错误:/usr/share/dotnet/sdk/5.0.404/NuGet.targets(131,5): error : Unable to load the service index for source https://api.nuget.org/v3/index.json. [/root/stickynotesbackend/CloudWorki

2022-02-01 23:00:19 4073

原创 StikyNotes便签软件

StikyNotesgithub地址一个简单清爽的的Windows桌面便利贴A convenitent and beautiful Windows StikyNotes Application安装 Installation点击下载StickyNotes.exe及AutoUpdateTool.exe两个文件,放置在同一个目录下即可,双击StickyNotes.exe运行便签软件: 点击此处打开下载页面Click to download the two files StickyNotes.exe a

2022-01-19 22:37:34 619

原创 ASP.Net Core Webapi使用AutoMapper

ASP.Net Core使用AutoMapper前言原文博客链接由于CSDN界面越来越烂,因此自己搭建了一个博客网站,上面的链接是我自己的个人博客网站地址,希望大家可以去上面阅读我的文章,CSDN只是用来备份数据http://www.lizhenghao.site/blog/2022/01/12/152个人的博客首页:博客首页AutoMapper的作用在Webapi中如果我们不使用AutoMapper,在接收参数后我们如果需要存入数据库中,需要这样写public IActionResult

2022-01-16 18:20:18 659

原创 C# Async await底层源码阅读

前前言原文博客链接由于CSDN界面越来越烂,因此自己搭建了一个博客网站,上面的链接是我自己的个人博客网站地址,希望大家可以去上面阅读我的文章,CSDN只是用来备份数据http://www.lizhenghao.site/blog/2022/01/12/152个人的博客首页:博客首页前言对于我来说,Task+await+async已经用的很熟练了,像之前也写过一篇文章http://www.lizhenghao.site/blog/2021/12/30/89 讲了一下怎么用Task和TaskFac

2022-01-12 22:59:33 961

原创 Winform/WPF利用CefSharp集成vue开发

原文发表在我的个人搭建的博客网站上:博客链接,下面是直接复制过来的Winform/WPF集成vue开发前言有时候因为各种原因,可能在开发winform或wpf项目的时候需要嵌入web项目,而目前vue在web开发中还是非常流行的,今天有空琢磨了一下怎么在winform中集成vue进行开发,当然,winform能实现,wpf也是一样的。目前希望达到的效果是,能够在winform中显示web界面,并且能够与vue中的各个组件进行交互,也就是调用vue中的函数,及vue函数调用C#中的方法。项目创建首

2022-01-08 14:19:02 5237 6

原创 新的个人博客

http://www.lizhenghao.site/

2022-01-02 17:01:40 147

原创 C#关于深拷贝的坑

C#关于深拷贝的坑问题及分析目前遇到的一个问题:有一个List<MyClass> target对象,需要把target备份一份,防止在界面中对target的内容修改后又取消,此时需要将target的数据进行还原,一开始时使用如下代码备份: class MyType { public string val = "origin"; }class Program{ static void Main(string[] args) { // 原始数

2021-07-14 10:44:59 279

原创 WPF ObservableCollection过滤后无数据显示的BUG

WPFObservableCollection过滤异常的BUG问题复现:使用两个带有不同过滤规则(Filter)的ICollectionView对ObservableCollection进行过滤时,出现显示不出数据的情况,但是此时ObservableCollection内是有数据的。代码如下:// 源数据 public ObservableCollection<ResourceItem> Resource { get; set; } = new ObservableCollection

2021-07-12 22:29:12 579

原创 C#我对协变和逆变的理解

C#协变和逆变由于看书的时候对协变和逆变还是不太理解,因此从StackOverflow上看到了一个很好的回答:c# - still confused about covariance and contravariance & in/out - Stack Overflow,在这里我对这个回答进行汉化同时加上一点我自己的理解,帮助大家一起学习。用到的类和接口首先我们用如下的类进行介绍:class Animal{} // 动物类class Mammal: Animal{} // 哺乳动物类

2020-11-30 21:05:13 542

原创 [C++]cppreference离线手册

cppreference离线手册下载介绍cppreference是C++各种标准库函数API的查询手册。内容如下图:所有函数,如果不记得随时可以查询翻阅,还带详细demo。离线文档下载地址下载地址:https://zh.cppreference.com/w/Cppreference:Archives以下两个选项 chm版本或者html版本的离线文档都可以下载:98683013722)]...

2020-08-29 14:38:07 11258 3

原创 第一行代码(第三版)第八章总结

[第一行代码(第三版)]第八章总结1. ContentProvider1.1 概念ContentProvider用于与其它应用程序共享数据。1.2 统一资源标识符(URI)其他的程序如果想使用本程序中的数据,需要通过 URI 找到对应的ContentProvider。内容提供者可以根据传过来的URI来确定它需要的表和数据。其格式如下:<prefix>://<authority>/<data_type>/<id>prefix:固定content

2020-06-16 19:07:39 495

原创 [第一行代码(第三版)]第七章总结

[第一行代码(第三版)]第七章总结1. 数据持久化1.1 概念将一些临时数据存储到本地。可以分为三类:文件存储SharedPreference数据库存储接下来对这三类分别进行详细介绍。1.2 文件存储1.2.1 介绍文件存储是最基本的存储方式,不对存储内容进行任何格式化处理,所有数据都是原封不动存储到本地文件中,因此适合存储一些简单文本或者二进制数据,如果需要存储一些复杂数据,可以使用Json或XML格式先规范后再进行存储。文件存储位置在data/data/[包名]/[文件名]。1

2020-06-16 14:57:54 301

原创 第一行代码(第三版)第六章总结

[第一行代码(第三版)]第六章总结1. 广播机制1.1 概念为了便于进行系统级别的消息通知,Android引入了一套类似的广播机制。Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者(广播接收器)。1.2 分类根据接收方式来划分:标准广播:一种完全异步执行的广播,所有的BroadcastReceiver都会几乎同时收到广播消息。有序广播:一种同步执行的广播,所有的BroadcastReceiver会根据优先级有序的一个一个

2020-06-16 13:33:11 314

原创 第一行代码(第三版)第四章总结

[第一行代码(第三版)]第四章总结1. 常用控件1.1 TextView1.1.1 概念TextView主要用来显示一段文本信息。1.1.2 常用属性layout_weight,leyout_height:指定控件的宽度和高度,可选值:match_parent,wrap_content和固定值。第一种是匹配父类容器的大小,第二种是根据内容自适应大小。单位一般用dp,这是一种与屏幕密度无关的尺寸单位,可以保证在不同手机上显示效果尽可能一致。dp:是一种密度无关像素,对应于160dpi下像素

2020-06-15 15:08:01 262

原创 第一行代码(第三版)第三章总结

第一行代码(第三版)第三章总结1. Activity1.1 Activity概念Activity为安卓四大组件之一(Activity/Service/BroadCast Recevicer/Content provider)。Activity主要负责与用户交互,提供一个显示的屏幕。1.2 创建Activity新建类MainActivity继承Activity基类。public class MainActivity extends AppCompatActivity{ @Overri

2020-06-14 15:39:35 610

原创 WIN10与WSL ubuntu文件互通

WIN10与WSL ubuntu文件互通方法一打开WSL子系统的shell终端,输入:cd /mnt则会显示当前windows系统的所有盘符.lzh@DESKTOP-HA5D6OQ:/mnt$ lsc d f之后使用mv或者cp等命令进行复制移动即可.方法二打开WSL子系统的shell终端,输入:explorer.exe .即可在资源管理器界面中浏览WSL系统的数据...

2020-03-27 16:51:27 12594 8

原创 版本控制方式

版本控制方式合理的版本号格式为:MAJOR.MINOR.PATCH.BUILD,以1.2.3.4举例:1:主要更新,例如全新的UI界面,许多重大的功能更新,框架更改等.2:次要更新,例如某个小的功能修改,新的功能添加.3:错误修复版本,在修复代码中bug时修改此数字.4.内部版本号(可以不使用),即预发型版号.现在很多软件放弃了版本号,而使用昵称取代,比如安卓的Pie,Oreo等,...

2020-03-26 14:17:37 478

原创 c++判断系统为windows或linux

C++判断系统为linux或windows// #if defined(WIN32) || defined(_WIN32) || defined(__WIN32) && !defined(__CYGWIN__) // do something...// #else // do something...// #endif

2020-03-26 13:42:48 3452 2

原创 cmake生成同名的可执行文件和库文件

CMake生成同名的可执行文件和库文件 # 生成动态库文件 add_library(项目名_exe SHARED foo_lib.c) set_target_properties(项目名_exe_lib PROPERTIES OUTPUT_NAME 项目名) # 生成可执行文件 add_executable(项目名_exe foo_exe.c) set_t...

2020-03-25 15:46:30 1954

原创 ubuntu下编译并使用jsoncpp

ubuntu编译并使用jsoncpp安装好gcc和g++删除所有旧引用(如果未安装过gcc,跳过此步骤) sudo update-alternatives --remove-all gcc sudo update-alternatives --remove-all g++安装gcc和g++ sudo apt-get install gcc-4.8 sud...

2020-03-25 14:46:59 2012

原创 python计算线段夹角

计算两条线段之间的夹角1. 问题与解决思路如上图所示,要求图中线段AB,CD之间的夹角(AB,CD都没有方向),可以按照如下步骤计算:计算AB线段与X轴的夹角.计算CD线段与Y轴的夹角.合并两个夹角,因为求的是最小角度,所以需要对90进行求余,得到的角度为最后结果.2. 具体步骤首先计算出AB线段与X轴的夹角,将AB线段进行分解,如下图:其中角度的计算公式为◬=arcta...

2019-10-24 18:12:03 13629 1

原创 [WPF]数据绑定使用INotifyPropertyChanged发出通知后view中不更新

出BUG半天,经过了StackOverflow和百度之后才发现原来是这个原因:用快捷键生成的代码默认实现的是protect virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)//...由于使用了protect之后通知了,view中也接收不到,导致不更新,把protect改成public...

2019-10-13 01:46:33 673

原创 python制作阴阳师挂机脚本

项目地址:https://github.com/li-zheng-hao/yysScript软件截图:目前版本仅支持御魂副本双开,部分代码如下:def YuHunTwoWindow(LogUI): """ 自动御魂,双开模式 """ imgs = loadImgs() PassTime=1 while True: LogUI....

2019-09-28 11:56:12 10963 14

原创 windows下使用控制台打开conda虚拟环境

1、先把三个Anaconda下的路径添加到系统变量。F:\Anaconda3 F:\Anaconda3\Scripts F:\Anaconda3\Library\bin2、actiavte+环境名称,不加conda。

2019-09-27 15:19:23 7706 3

原创 [Python]Django从template传递参数到url

Django从template传递参数到url一共有两种方法:方法1在.html文件中,这样写:<a href="{% url 'paper:downloadFile' %}?index=1">images.zip001</a>index就是传递过去的参数,在url.py文件中这样写:re_path(r'^downloadFile/$', views.down...

2019-08-02 12:21:47 2662 1

原创 Resharper c++ 使用Enter自动补全代码步骤

步骤菜单栏扩展resharperoptionIntelliSenseAutopopup将所有的菜单都选择Display and preselect,也就是预先选择,之后就可以用enter而不是用tab进行补全了。

2019-07-11 16:01:54 3010 4

原创 [C++ Primer] 第二章 变量和基本类型

第二章 变量和基本类型引用引用定义的时候必须初始化。引用初始化之后无法重新绑定到其它对象上。引用本身并不是对象,所以没有指向引用的引用(不管如何多层引用,引用的还是源对象)下面用一个简单的例子说明:int a=1;int& b=a;cout<<&a;//00D4FE0Ccout<<&b;//00D4FE0C可以看...

2019-06-19 15:11:24 142

原创 [深度学习]Keras利用VGG进行迁移学习模板

# -*- coding: UTF-8 -*-import kerasfrom keras import Modelfrom keras.applications import VGG16from keras.callbacks import TensorBoard, ModelCheckpointfrom keras.layers import Flatten, Dense, Dro...

2019-05-23 18:01:43 3276 1

原创 [Python]Python调用Matlab (Pycharm版本)

目录第一步:生成Build文件夹第二步: 复制build文件夹到Pycharm下第三步:调用代码第一步:生成Build文件夹C:\Program Files\MATLAB\R2016a\extern\engines\python运行命令(在pycharm的终端里面):python setup.py install 第二步: 复制build文件...

2019-05-16 09:26:57 12196 8

原创 [Python]装饰器总结

目录闭包装饰器简单装饰器 修饰带参函数的装饰器 本身带参数的装饰器 类装饰器 装饰器缺点 装饰器用途闭包说到装饰器就不能忽略闭包,下面先介绍一下闭包的概念:在一些语言中,在函数中可以(嵌套)定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包。闭包可以用来在一个函数与一组“私有”变量之间创建关联关系。在给定函数被多次调用的过程中,这些私...

2019-05-16 09:02:49 127

原创 [WPF]ICommand最佳使用方法

public class RelayCommand:ICommand { private Predicate<object> _canExecute; private Action<object> _execute; public RelayCommand(Predicate<object> canE...

2019-04-02 12:31:49 11632

原创 [Java]内存回收机制框架图

具体解释下面这篇博客总结的已经非常好了,我就不复制了:http://www.cnblogs.com/cielosun/p/6674431.html#12-%E5%8F%AF%E8%BE%BE%E6%80%A7%E5%88%86%E6%9E%90

2019-03-15 09:54:47 166

原创 [C++]vector内存的增长机制

例子#include &lt;iostream&gt;#include&lt;vector&gt;#include&lt;algorithm&gt;#include "CPPDemo.h"#include&lt;iomanip&gt;#include&lt;set&gt;#include&lt;vector&gt;using namespace std;int mai

2019-03-02 19:14:56 647

原创 [C#]C++/CLI中interior_ptr和pin_ptr的区别

interior_ptr当垃圾回收器移动对象时,Interior pointer能随之移动,并始终指向该对象。但是如果把这个指针返回给外部函数,那么当垃圾回收时(垃圾回收期间会压缩对象,),对象地址发生改变,指针会指向错误的地址。pin_ptr在外部调用托管堆中指针时,垃圾回收过程中该指针会发生改变,引起外部调用的错误。必须使用pin_ptr指针将该指针固定。因此,如果...

2019-03-01 21:42:28 954

原创 [C#]C++/CLI中^的含义

例子// here normal pointerP* ptr = new P; // usual pointer allocated on heapP&amp; nat = *ptr; // object on heap bind to native object//.. here CLI managed MO^ mngd = gcnew MO; // allocate on ...

2019-03-01 21:22:59 1108

VS2017安装包

VS2017安装包VS2017安装包VS2017安装包 VS2017安装包VS2017安装包

2017-12-06

C#基于TCPIP的聊天室

如果你在做C#的聊天室毕业设计,我觉得这个资源是非常适合的,基于CS架构,服务端有开启关闭服务器、查看在线人数、发出系统通知、查看数据库数据等功能;客户端包括登录、注册、好友聊天、传输文件、添加好友、删除好友等功能,使用说明压缩包里也有,只需要改一下数据库和ip地址就可以完美运行。

2017-12-06

Git-2.14.1-64.bit.exe

git安装包Git is a free and open source distributed version control system designed to handle everything from small to very larg...

2017-09-09

空空如也

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

TA关注的人

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