自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(67)
  • 资源 (4)
  • 收藏
  • 关注

原创 WPF 使用AsyncFixer多线程开发福音

WPF AsyncFixer 多线程开发新手福音

2022-06-07 16:16:19 155

原创 VS Code 配置C++ 运行环境

VS Code 配置 C++环境

2022-06-03 19:20:40 149

原创 CSAPP第二章家庭作业

CSAPP 家庭作业

2022-06-02 10:17:20 756

转载 windows进程通信的几种方式

1 文件映射  文件映射(Memory-Mapped Files)能使进程把文件内容当作进程地址区间一块内存那样来对待。因此,进程不必使用文件I/O操作,只需简单的指针操作就可读取和修改文件的内容。  Win32 API允许多个进程访问同一文件映射对象,各个进程在它自己的地址空间里接收内存的指针。通过使用这些指针,不同进程就可以读或修改文件的内容,实现了对文件中数据的共享。  应用程序有三种方法来使多个进程共享一个文件映射对象。  (1)继承:第一个进程建立文件映射对象,它的子进程继承该对象的句柄。

2022-05-25 23:27:14 895

原创 Win32 API SendMessage消息发送需要考虑的事情

局限性Snedmessage 发送消息有局限性的,首先由Session简单来说就是桌面程序不能和服务程序跨过session边界进行通信。受权限影响权限低的程序,不能向权限高的程序发消息。(虽然由办法可以解决)安全性极低比较容易遭受攻击,其他程序可以直接通过SendMessage来骗取行为。...

2022-05-25 23:19:35 742

原创 持续交付.发布可靠软件的系统方法

第一章1.1 引言主要描述了一些公司的现状,介绍了这本书描述了软件从开发到发布这一过程的有效模式,和本书的最佳实践1.2 一些常见的发布反模式1.2.1 反模式:手工部署软件描述了部署过程都比较复杂,许多组织/个人都是用手工方式发布软件,因此可能会造成很多问题,这种称为反模式。具体特征如下:*自动化部署时一个必不可少的目前,具体原因如下:1.2.2 反模式:开发完成之后才向类生产环境部署描述了软件开发完成了,第一次部署到测试运行环境时,这种模式中,经常出现下面这些情况:

2022-02-28 13:39:05 1126

原创 WPF Popup显示后立马隐藏的BUG

问题背景同事写了一个头像控件,点击鼠标右键需要显示一个popup控件,但是同事在开发时遇到一个问题。鼠标点击下去popup显示出来了,鼠标松开popup又自动隐藏。分析过程排查了界面其他控件一直获取焦点可能会导致头像popup打开后立马就隐藏现象。此页面上有其他控件也有显示popup的地方,唯独头像这里不对。经过仔细排查,发现跟事件有关系,其他正常的popup隐藏和显示是触发是用click事件来触发。而头像这里是用MouseLeftButtonDown 来触发。解决方案出现问题前处理方式是:通过

2021-11-17 14:52:30 1380

原创 windows API InjectTouchInput导致蓝屏

硬件背景客户硬件设备:windows触屏+触屏笔+鼠标问题描述:收到外部客户的反馈,使用软件时会蓝屏。但是没有找到重现的步骤,不清楚是硬件还是软件导致的且这个问题遇到的客户越来越多。软件需求需求一:windows 全局触摸手势,使用指定手势时,软件需要进行一些不同的设置需求二:如果有多屏的情况,如果在主屏触摸输入需要把触摸点偏移到副屏。抽象点来说就是,主屏的触摸输入点偏移到副屏的对应坐标。(场景:副屏打开一个windows 自带的画图工具,用手在主屏能操作副屏的画图软件)线上触摸监听技术方案使

2021-11-06 14:53:36 597

原创 怎么安装Framework4.5.2以前Net版本

背景从微软官方不能下载net framework 4.5.2以前的版本了。但是重装系统后项目必须需要net 4.5 进行编译怎么版本呢?从网上找了一大圈开发版本和正式版本的SDK 安装包,没能找到net 4.5的。解决办法使用VS2019只安装Net版本。 社区版本官网下载地址(很小只有1M多)...

2021-11-01 11:50:00 721

原创 基于AVStream框架的摄像头驱动开发之——环境准备

Windoows 硬件开发人员驱动开发环境1:Visual Studio建议最好使用2019,使用2022 Preview 需要找到对应的WDK2:windwos SDK请酌情安装3: WDK取决于你的系统版本,需要找到和你系统版本匹配的,且需要和vs版本匹配以上环境VS版本需要和WDK版本匹配使用详细配置环境请移步:外部链接期间遇到问题记录本机环境:VS (2022 Preview) ; windows10 (19042);windows 11的 WDK编译的项目:AvsCamera

2021-09-23 10:18:16 1998

原创 FFme 播放某些视频导致程序崩溃

问题背景ffmpeg相关 dll: 是由公司一个同事编译的WPF播放器(FFme):在测试播放视频文件时,在播放一些手机拍摄的视频会导致程序直接闪退问题视频尺寸: 540 * 360 和 360 * 640排查过程调试FFme源代码无果,然后测试过视频尺寸是否有关系,测试过windows(x86)后发现没有这个问题的存在。怀疑是ffmpeg的dll 可能存在问题。问题定位发现是FFmpeg(X64).dll swscale-5.dll这个dll会导致播放时崩溃,替换后。运行正常..

2021-09-18 11:41:06 751

原创 C# 使用Win32API 设置一个进程的窗口置顶显示

需求背景需要满足打开一个进程,且要这个进程的窗口要显示在当前程序的窗口之上设置SetWindowLong并不能置顶 ComNativeMethods.SetWindowLong(intPtr, -8, Parent);尝试过设置父窗口的句柄,发现不行。解决办法需要调用2个API接口 //先设置窗口的显示层级 ComNativeMethods.SetWindowPos(intPtr, new IntPtr(ComNativeMethods.HWND_TOPMOST), 0, 0

2021-09-14 09:27:12 3019

原创 wpf RelayCommand的CanExecute 没有触发的原因

问题描述使用MVVM RelayCommand CanExecute 进行按钮禁用控制,偶尔会出现CanExecute 一直不触发。如图CanExecute 一直没触发,导致按钮本应该可用,这里一直不可用。而且出现这个问题后,只要鼠标或键盘点击任意一处地方(可以是电脑屏幕的任何一个图标)就能马上触发CanExecute事件,真神奇。问题定位通过测试发现,页面Load事件数据量大时,不会出现这个问题。只会在数据少页面响应很快时,就会出现这个问题。顺着排查,发现再Load事件内使用了await Ta

2021-08-12 12:02:44 1731

原创 C++ 不太容易理解的问题记录

基础部分顶层Const 和 底层Constconst 指针示例:const int* pInt 和 int *const pInt = &someInt;前者 pInt指针(*pInt)不能改变,而后者是pInt对象不能改变 指针是不是常量和指针指向的对象是不是常量是二个不同的问题顶层const可以表示任意的对象是常量对任何数据类型都适用;底层const则与指针和引用等复合类型有关总结:顶层表示指针是个常量,底层表示指针所指向的对象是个常量...

2021-08-02 12:59:39 117

原创 码云创建仓库和本地文件推送

创建仓库登录自己的码云,然后创建一个仓库,如下图:这样最基本的一个代码仓库就以及创建好了,接下来推送本地的代码到新创建的仓库。代码推送如下是示例:具体的关键字更换自己的Git 全局设置:git config --global user.name “lv1861321XXXX”git config --global user.email “36142XX@qq.com”推送代码git init git remote add origin git@gitee.com:lv1861321XX

2021-07-30 11:13:36 277

原创 WPF ListBoxItem ContentPresenter 在父控件种内容满铺

问题背景WPF ListBox 重写了 ListBox.ItemTemplate 样式后,ItemTemplate内的控件一直不能满铺。问题定位根据VS 的WPF 树结构调试器,发现ListBoxItem 高度是正确的,但是 ContentPresenter 的高度始终不能和父级(ListBoxItem)一样高。解决办法设置ListBoxItem 的 VerticalContentAlignment<ListBox x:N

2021-07-28 15:59:15 1903

原创 FFmpeg 报错:计算机丢失api-ms-win-file-l1-2-2.dll

问题背景客服反馈有客户,会议结束后,上传视频失败。经简单分析,发现FFmpeg将流保存文件时报错,如下图:解决过程1:重现安装了c++,不行继续报错。(其实安装没问题,是软件内所带了C++相关库文件,所以根本引用不到系统的库文件。)2:网上寻找了一番(https://buildbot.hehoe.de/pidgin-devel/wine/drive_c/windows/system32/),也找到了图中所提示的dll,替换后又提示了一系列的dll(内心毫无脾气了…)。替换到最后行不通索性放弃。3

2021-07-13 20:20:43 2387

原创 async方法使用lock替换方案

前言:不要在async和await中使用lock,也不要在lock中使用await。可以替换为 SemaphoreSlim,示例代码如下:calss Test{ private static readonly SemaphoreSlim _mutex = new SemaphoreSlim(1, 1); public async Task InsertCourse() { try { await _mutex.WaitAsync(); //... }catch

2021-07-07 15:24:33 853

原创 c# 与C++ RSA加密 通信

需求背景c# 调用了C++动态库,设计到一些敏感信息的函数传递,为了不让动歪脑筋的人,直接使用c++编译的动态库。所以需要传递的数据进行加密实现过程起初,C++使用了 Openssl 库进行RSA私解 C# 公加。过程中测试c# 加密出来的字符,使用百度在线RSA解蜜 ,是能解出来的。而C++接受到C#密文,私钥解码一直返回-1。折腾了大半天发现Openssl生成出来的密钥不能做到跨语言通用(可能是各个语言对加解密格式,密钥格式不一致)。最终解决办法使用Crypto++库,可以做到C++RSA

2021-06-16 17:21:04 518

原创 客户端关键信息防止泄漏

前言:严格意义上来说,任何比较关键的信息不应该存放客户端防止客户端泄漏关键信息应从3个维度进行保护一:防篡改使用代码数字签名工具,没什么说头二:关键内容通信加密DES AES RSA 文章后面再介绍三:对代码进行加壳和混淆使用多个工具进行重复加壳混淆,加大破解难度介绍 DES AES RSADES 使用密钥加密的算法特点 对称加密同一个SKAES 高级加密标准对称加密一个SK扩展成多个子SK,轮加密RSA非对称加密,既:PK与SK不是同一个

2021-06-08 15:30:29 177

原创 VS后期生成命令行

vs 后期生成命令行拷贝指定目录所有文件到文件输出目录xcopy "$(ProjectDir)Dll\" "$(TargetDir) " /s /e /i /d /y考虑指定目录下所有dll文件到输出目录copy /Y "$(ProjectDir)SwopHelp\*" "$(ProjectDir)$(OutDir)"根据条件判断拷贝目录set Platform=Win64SETLOCAL ENABLEDELAYEDEXPANSIONif $(PlatformName)==x86 (

2021-06-03 14:59:00 545

原创 WPF XAML 设计模式下不显示元素

WPF XAML 设计模式下不显示元素背景有时候在写界面时,界面上面页面元素太多,不方便看效果,就像下图:这种情况下,就可以在设计模式下隐藏你不想看到的界面元素,代码如下:XAML先引入空间名称 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" <!-- 使用示例 设置 d:IsHidden="True"--> <StackPanel Grid.Row="2" Margin="110,0,0,0"

2021-05-26 12:03:33 1077

原创 C# 调用 C++, 调试C++

C# 调用 C++ 调试第一步:首先确认你的c++ 动态库 能编译成功第二步:把C++ 项目输出的目录指向 C#的运行目录,如下图:第三步:把c#项目的输出工程,属性>调试》本地代码调试勾选上,如下图所示:完成以上步骤,就可以在同一个调试会话中调试 C# 和 C++了,但是笔者在开发中发现,只要c#勾选上了本地代码调试后,如果在调试过程中修改代码后,需要重新启动,代码才能生效。而不勾选本地代码调试,则在调试时,修改了代码会立马生效。有点坑啊...

2021-05-14 14:02:03 1437 2

原创 异常信息:System.ObjectDisposedException 在FFme.Primitives.ThreadWorkerBase.RunWorkerLoop()

异常信息:System.ObjectDisposedException 在FFme.Primitives.ThreadWorkerBase.RunWorkerLoop()问题描述在一台win10电脑拖动播放器的进度条发生了软件崩溃。并截取了日志信息。解决办法查看了FFme的源码发现项目所用的版本,在RunWorkerLoop方法,低概率会出现线程...

2021-04-29 18:59:49 336

原创 win7 wpf popup 内嵌popup 鼠标不聚焦

win7上popup控件内嵌popup第二个pop控件不能被聚焦的问题问题描述问题定位问题解决问题描述前2天公司测试发现,在win7.net framerwork 4.5 一个页面控件显示有问题,而在另一台win7 (netframerwork 4.7)上面也没问题,并且在win10 上也没问题。问题定位在查阅资料和发现是wpf 的bug,因为 Popup 的句柄具有 WS_EX_NOACTIVATE 的特性,所以 Popup 是无法获得焦点。在微软的系统,所有的窗口、控件都是有句柄,句柄就是一个指

2021-04-16 09:55:25 552

原创 FFmSystem.Runtime.InteropServices.MarshalDirectiveException: Cannot marshal ‘parameter #3’: Invalid

FFme.win在win7(.net4.5) 运行报错错误信息System.Runtime.InteropServices.MarshalDirectiveException: Cannot marshal ‘parameter #3’: Invalid managed/unmanaged type combination (String parameters and return types must be paired with LPStr, LPWStr, LPTStr, BStr, TBStr,

2021-03-31 14:21:54 1291

原创 C# VSTO 幻灯片播放时隐藏菜单

VSTO播放幻灯片时隐藏左下角菜单栏设置幻灯片放映模式为:讲台放映 Globals.ThisAddIn.Application.ActivePresentation.SlideShowSettings.ShowType = PpSlideShowType.ppShowTypeKiosk;

2021-03-11 14:51:50 341

win7 安装.net framework 4.5.2报错:“根据当前系统时钟或签名文件中的时间戳验证时要求的证书不在有效期内

net framework 4.5.2离线包

2023-12-04

微信二维码自定义下方文字和各种样式

微信二维码自定义下方文字和样式,可以通过dome的思路,修改各种样式包括扫码成功的图标和样式

2023-07-12

WindowsApplicationDriver-1.2.99-win-x64

最新编译winappdriver x64 安装程序 WindowsApplicationDriver-1.2.99-win-x64,用于UI自动化测试,支持多语言

2022-08-06

WinAppDriver UIRecorder工具

编译截止2022年7月29日15:52:25 最新编译的微软UI自动录制UIRecorder工具

2022-07-29

SendMessage.rar

C# SnedMessage相互接收和发送消息,C++环境是VS2019

2021-08-26

C++ C# 通信RSA加密

使用了Crypto++库使c# c++ RSA 内容和结果一致。

2021-06-16

空空如也

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

TA关注的人

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