- 博客(44)
- 资源 (5)
- 收藏
- 关注
原创 已安装nodejs,abp install-libs 提示错误NPM is not installed
已经安装了nodejs。abp安装lib报错abp install-libs[22:59:18 INF] ABP CLI (https://abp.io)[22:59:19 INF] Version 5.3.2 (Stable)[22:59:20 WRN] NPM is not installed, visit https://nodejs.org/en/download/ and install NPMnpm -v查看版本结果有一段警告,需要把这段警告去除,abp才能正确识别npm版本号...
2022-07-10 05:34:13
2009
原创 WPF Prism 模块添加应用程序快捷键的实践探索
应用场景给应用添加快捷键是很常见的场景,WPF下的一般做法是Window下添加 KeyBinding 。但是WPF Prism模块化之后,有时候我们需要给某一个模块添加快捷键,本文主要讨论这种场景下的一种实践。代码参考链接 https://stackoverflow.com/a/42974477/14124583基本思路通过 Behavior 找到控件的父窗体,添加 PreviewKeyDown 事件处理修改了参考链接的代码来支持单键快捷键。C#代码 public class Keyb
2021-03-03 17:43:24
598
3
原创 WPF ContextMenu右键菜单和控件的DataContext进行绑定的实践探索
参考资料:https://blog.youkuaiyun.com/WPwalter/article/details/83473313主要是x:Reference的应用,不过因为存在循环依赖的问题,需要一个代理不过仔细看代理类发现我们并没有必要手动创建一个类,直接从wpf现有的类型中找一个类似的类即可 <wpf:MapControl x:Name="Root"> <wpf:MapControl.Resources> <DiscreteObj
2020-11-11 20:13:48
1764
原创 sqlcipher与Microsoft.Data.Sqlite.Core踩坑
sqlcipher可视化工具与ADO.NET的使用sqlcipher可视化工具SQLiteStudioDB Browser for SQLiteADO.NET的使用参数设置建议sqlcipher可视化工具SQLiteStudio 3.2.1DB Browser for SQLite 3.12.0都是Github上的开源项目需要非常注意的一点是 sqlcipher也是有版本区分的。SQLiteStudioSQLiteStudio 3.2.1 只支持 sqlcipher 3创建的数据库文件DB
2020-06-25 00:01:59
6159
1
原创 Jenkins搭建C#编译开发环境笔记
首先这不是一篇手把手教学,只记录搭建过程中的问题汇总。首先, windows上安装jenkins是以服务的方式跑的,下面的改动基本都要重启服务才能生效。Msbuild下载就在vs2019下载页面那里,不过在网页下面 叫vs2019构建工具什么的,和vs2019安装方式基本差不多,可选各种模块。nuget下载地址好找,就一个exe上面两个路径都要添加到 环境变量 Path 里msbuild我的默认路径是 C:\Program Files (x86)\Microsoft Visual Studio\
2020-06-07 18:35:50
1857
1
原创 Net core下获取当前路径的各种方法测试
.Net Core 获取程序当前路径测试环境测试代码输出win-x64linux-64总结测试环境主要对.Net Core下的几种获取文件方式进行测试,测试环境.Net Standard 2.0 类库 ClassLibrary1.Net Core 3.1控制台程序 LinuxPathTest发布分别打包为linux-x64和win-x64 无依赖 单文件 裁剪未使用程序集测试代码C...
2020-03-11 11:45:32
8595
原创 WPF在后台线程渲染控件并保存为图片
WPF在后台线程绘制控件并保存为图片应用情景示例代码改进方案总结应用情景实际上,WPF在后台线程绘制控件是很 “脏” 的手法,网上的资料也不多,不是什么值得使用的方案。这里存粹是记录一下。我遇到一个应用情景是,一个控件是由视频控件和上方的Grid控件组成的,该Grid控件能够根据视频控件的内容动态的显示一些效果,类似于视频滤镜。需求是能够将整个控件的变化导出到视频,而且要支持导出队列,就是多...
2019-08-12 14:12:21
1396
2
原创 C#代码中在编译期获取代码行号
常规方式是使用 new StackTrace(true).GetFrame(0).GetFileLineNumber(); 等一系列操作。这种操作有个问题是依赖 .pdb文件,在发布时我们一般会去除pdb文件。如果这时候通过这种方式打印行数,会发现行号为0.NET 4.5之后可以使用CallerMemberName ,CallerFilePath 和 CallerLineNumber...
2019-07-18 18:45:58
976
原创 WPF在ViewModel中处理View中的事件
WPF VM中处理V的事件,微软官方提供了 CallMethodAction 和 InvokeCommandAction 两种方式来解决这个问题
2019-07-17 18:20:51
2700
1
原创 C#叠加合并半透明图像的两种实现
C#叠加合并半透明图像说明方案一:系统自带 GDI+ 实现方案二:使用 EmguCV 实现总结说明OpenCV作为一个图像库,竟然没有提供一个直接的函数去做这件事情。这里使用系统自带的GDI和EmguCV(C#封装的OpenCV)分别实现了叠加合并两张半透明图像的功能。两个半透明颜色色的叠加计算方法透明颜色混合算法方案一:系统自带 GDI+ 实现/// using System.Dr...
2019-02-26 15:54:39
5515
原创 linq2db与T4模版
工作需要详细了解了一下数据库,其实以前选修过,不过没什么实际应用正好遇到新技术,顺带了解一下。文章目录基础概念T4模版Linq2db实例工程结构基础概念T4模版T4模版是VS自带的一个自定义工具(VS新建- 文本模版)他的文件格式是.tt和.ttinclude格式实际上就是C#的变形,具体的语法规则这里不做展开。大概类似下面这样&lt;#@ include file="Lin...
2019-02-01 02:12:16
2043
原创 WPF通过不透明蒙板切割显示子控件
WPF通过不透明蒙板切割显示子控件子控件超出父控件显示区域问题使用遮罩蒙板去遮罩显示子控件不透明蒙板 OpacityMask代码拷贝子控件超出父控件显示区域问题在WPF开发过程中,经常会碰到圆角控件,我们一般是通过Border实现,但是如果我们向该控件中放入子控件,同时设置子控件距离左侧和顶部的距离为0,此时子控件会超出父控件的圆角显示范围。使用遮罩蒙板去遮罩显示子控件最外层还是Bord...
2019-01-25 00:18:02
775
原创 一种基于边缘的模版匹配算法
引用资料 https://www.codeproject.com/Articles/99457/Edge-Based-Template-Matching著名机器视觉软件Halcon 的开发人员出版的一本书Machine Vision Algorithms and Applications [Carsten Steger, Markus Ulrich, Christian Wiedemann...
2018-06-22 10:43:59
8754
6
原创 过N点的贝塞尔曲线
做一条过N点的平滑曲线引用自http://www.cnblogs.com/muxue/archive/2010/06/23/1763886.html当然有一个小的速度上优化技巧,令d1=d2这样计算复杂度会减少,但是曲线的拐角会比较丑。 public class BezierCurves { /// <summary> /// create c...
2018-02-09 20:36:24
2866
2
原创 C#中对象池ObjectPool的实现
线程池是从预先创建的众多线程中 取用 / 归还 线程,通过重复利用线程,以节省频繁新建销毁线程的开销。同理,对象池则是为了从预先创建好的众多相同的对象中 取用 / 归还 对象,通过重复利用对象,以节省频繁创建销毁对象的开销。对象池多用于并发多线程操作,因此对象池一般要求是线程安全的,而且还需要有很高的性能。这里摘录一个在微软开源的Roslyn编译器中实现的ObjectPool(删除...
2018-02-07 20:52:16
7333
原创 单例模式在Winform窗体中的应用
Winform窗体应用程序经常会碰到这样一种情况:你点击按钮使用 ShowDialog 方法弹出一个子窗体,在子窗体关闭之前是无法操作父窗体的。如果只是单纯的使用 Show 方法弹出子窗体,是可以操作父窗体的,但是如果多次点击按钮,又会弹出相同的多个子窗体。这样这几个子窗体的数据同步上会存在问题。而且往往我们不想出现多个相同的子窗体。
2018-02-07 12:44:31
627
原创 VbScript脚本
'以下为VbScript脚本Set WshShell = WScript.CreateObject("WScript.Shell")appdataDir = WshShell.SpecialFolders("APPDATA") '获取"程序数据"目录currentDir = WshShell.CurrentDirectory '获取脚本当前目录desktopDir = WshShe
2017-04-11 23:40:11
1323
opcrcw.da.dll的x64版本
原文看我的优快云博客http://blog.youkuaiyun.com/backspace110/article/details/53525637优快云好像不能上传附件。在这里发附件
2016-12-08 23:40:26
707
原创 C#和VB.net代码转换工具
C# 的优势是微软大力推广,网上的开源库也很多,资源不错。VB.Net相对弱势一些,但是也有许多用户。通过代码转换工具就可以让VB.Net用上C#的各种开源库当然,我更倾向于VB.Net -> C# ,因为我的C/C++更熟练一些。
2016-12-08 22:32:36
3985
原创 Sqlite3 瞎捣鼓笔记
目录目录Sqlite3 数据库SELECT INSERT UPDATESqlite3 数据库UPDATE OF 触发器INSERT 触发器Sqlite3 sum函数求某记录的比例Sqlite3 substr字符串截取函数获取未知长度的前n-1个字符Sqlite3 创建内存数据库Sqlite3 导出内存数据库到文件首先我要安利一个免费开源的工具软件,sqlitestudio.用来查看
2016-10-15 01:32:09
2305
原创 VS2015,UNICODE字符集下printf,cout打印CString,与TRACE输出中文调试
下面的测试在中文电脑上"chs"直接使用""替换亦可.CString Str; #include // setlocale函数的头文件setlocale(LC_ALL, "chs"); // 必加 只有添加这一句下面的打印1,2与调试1,2才能成功wprintf(L"%s\r\n", Str.GetString
2016-10-05 09:41:15
5469
原创 数据合并小技巧
有三组数据a,b,c,取值范围分别为0-9,0-2,0-5,如何用一个字节(8位) M 表达出来? 编码方案:M=(a*3+b)*6+c 解码方案:c = M%6;b = M/6%3;a = M/6/3;
2016-10-05 09:41:09
641
原创 C# 一段代码理解”委托“
需要注意的是:委托实际上是一个类,在我们定义委托的时候:123456789public delegate void GreetingDelegate(string name);// 当编译器遇到这段代码的时候,会生成下面这样一个完整的类:public sealed class GreetingDelegate:Sy
2016-10-05 09:41:04
667
原创 DS18B20自动量程显示
#define STRING_LENGTH 5 // 显示5位 -12.2 -0.01 0.000 1.000 12.50 125.0 const char *TempValueToString(uint16_t tempValue){ static char tempValueString[10] = {0}; uint8_t isMinus =
2016-10-05 09:40:58
1038
原创 STM32串口第一字节消失或者误码的原因和解决方案
现象:stm32复位之后串口打印的第一个字节误码或者消失。误码多是由于端口初始化有问题。使用ST官方v3.5的标准库时,对串口输出端口进行了重复初始化。第一字节消失是因为‘TXE’和‘TC’ 标志位复位值都是‘1’。
2016-10-05 09:40:46
9881
1
原创 i2c协议笔记
最近因为要用rx8025,所以仔细看了一下i2c的协议文件,之前用过i2c的器件,不过是直接用的网上的例程,没仔细看协议的具体实现。仔细看了之后把延时时间给优化了一下。开始和停止都很简单,主要是中间的传输 中间传输出现的 (重新)开始信号 和开始传输的 开始信号 都是一样的,只要在SCL时钟线高电平期间,SDA数据线来一个下降沿就行。 i2c传输的要点就是: 传输一个字节 后面
2016-10-05 09:40:41
1576
原创 xxd航模电调电路图
之前淘宝的一个xxd(杂牌的统称)航模电调(无感无刷),拆解之后万用表挨个测的,有一处贴片元件没标志,推测是电阻,用万用表测量大概11K,用的是mega8,场管的上臂驱动用的是自举升压,U_BAT我觉得可能是电压检测,可能换相检测的时候会用到这个电压辅助计算,最下面的5条线代表两条电源输入,3条电调输出。图很大,右键保存或者在新标签页中打开。画的比较粗略,可能有遗漏。另外R3,R19,R27三个电
2016-10-05 09:40:29
17084
原创 CRC校验码生成与数据校验源码程序(逐位运算法) (包括CRC-4,5,6,7,8,16,32)
C语言的CRC4-ITU,CRC5-EPC,CRC5-ITU,CRC5-USB,CRC6-ITU,CRC7-MMC,CRC-8,CRC8-ITU,CRC8-ROHC,CRC8-MAXIM,CRC16-IBM,CRC16-MAXIM,CRC16-USB,CRC16-MODBUS,CRC16-CCITT,CRC16-CCITT-FALSE,CRC16-X25,CRC16-XMODEM,CRC16-DNP,CRC32,CRC32-MPEG2
2016-10-05 09:40:18
10267
原创 关于大端与小端的判断
大小端的概念很容易理解,摘录一下网上的判断程序方法一uint8_t Is_Little_endian(void){ uint16_t i = 1; return (*(uint8_t *)&i);}方法二uint8_t Is_Little_endian(void){ union { uint16_t big;
2016-10-05 09:40:12
755
原创 几种单片机相关的编译器预定义宏
__IAR_SYSTEM_ICC__ // IAR for avr 的预定义宏_AVR // ICC for avr 的预定义宏__CC_ARM // KeilMDK 的预定义宏__ICCARM__ // IAR for arm 的预定义宏__GNUC__ // GNU 编译器
2016-10-05 09:40:07
3488
原创 理解(*(void(*)())0)();
先说一下强制转换,可以跳过。例子:#include #include int main(){ uint16_t a = 0xA5A1; uint8_t b; b = (uint8_t)a; // 16位强制转换为8位 printf("b=0x%X",b); }a是16位,b是8位,将a进行一次强制转换的结果给b。我这里的输出结果是b=0x
2016-10-05 09:40:01
903
原创 MFC显示Mat数据格式(Opencv)图片,保证4字节对齐,图片缩放不错行
/*! display Mat on Picture Control in MFC *! Mat img: the image that to display *! UINT nID: the ID of control *! support BGR(Mat default),BGRA,GARY *! other type need use cvtColor to convert ...
2016-09-29 21:12:36
2229
1
MSPFlasher-1_03_20_00-windows-installer.zip
2020-10-09
MSPFlasher-1_03_19_00-windows-installer.zip
2019-05-30
Sim_EKB_Install_2016_10_26
2016-11-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人