
成长记录
文章平均质量分 67
SlimeNull
.NET 与 C# 狂热信徒
展开
-
[刷机] 9008 刷机救砖笔记
9008 模式刷机并不难, 学会之后, 就再也不用害怕手机成砖了原创 2023-07-19 16:36:23 · 14190 阅读 · 3 评论 -
[.NET] 结构体布局详解与结构体内存对齐具体方式
.NET 结构体有三种布局方式, 序列布局, 显式布局, 自动布局, 其中序列布局存在 "内存对齐" 现象, 内存对齐有两种情况, 一个是字段自己的要求, 一个是当字段大小小于包大小时, 使用包作为对齐要求调整偏移量. 如果不希望进行内存对齐, 指定 Pack 为 1 即可.自动布局的结构体不应该进行与非托管的互操作, 因为成员顺序会改变原创 2023-01-11 03:16:53 · 1273 阅读 · 3 评论 -
[.NET] 平台调用(P/Invoke) 与 DllImport 使用的相关讲解与注意事项,
P/Invoke 实现, DllImport 使用及成员变量概述, 字符串传值方式, 托管字符串对于不同字符集函数字符串的封送方式, 指针参数的正确声明姿势, DllImport 搜找入口点的大概逻辑原创 2023-01-06 03:59:30 · 2533 阅读 · 6 评论 -
Chrome 拓展开发 Service Worker 无法使用 XMLHttpRequest 发送 HTTP 请求
Chrome 拓展开发 Servcie Worker 无法使用 XMLHttpRequest, 应该使用 fetch 替代原创 2022-10-15 11:17:04 · 1614 阅读 · 0 评论 -
Google Chrome 插件开发: 无法建立连接, 接收端不存在. Could not establish connection. Receiving end does not exist
Google Chrome 插件开发: 无法建立连接, 接收端不存在. Could not establish connection. Receiving end does not exist原创 2022-10-14 10:00:19 · 30580 阅读 · 3 评论 -
[教程] 在 Y 分钟内学会 Python
在 Y 分钟内学会 Python这是翻译, 原文地址: Learn Python in Y Minutes在 90 年代初, Python 由 Guido van Rossum 创造, 现在, 它是最受欢迎的编程语言之一. 因其简明的语法, 我爱上了它. 语法基本上是可以执行的伪代码.提示: 这篇文章适用于 Python 3, 如果你想要学习旧版 Python 2.7, 单击这里# 单行注释以 '#' 作为开头"""多行注释可以使用三个双引号 并且经常用与书写文档"""#####原创 2021-05-05 18:44:21 · 1619 阅读 · 0 评论 -
[C#] C# 与 Java 的一些差异
这篇文章, 可以帮助你借助 C# 的知识快速入门 Java, 并且详细介绍 C# 与 Java 的重要差异1. 数据类型在 C# 中, 基本的数据类型都有别名, 例如字符串 String, 可以简写为 string, Int32 可以简写为 int, 但是在 Java 中, 不存在这些. 使用字符串, 必须要首字母大写, 使用布尔值必须要用 boolean.在 C# 中, String 数据基本数据类型, 而在 Java 中, 严格来讲, 它不属于基本数据类型. Java 中的基本数据类型更像是.原创 2021-04-18 11:07:46 · 383 阅读 · 0 评论 -
[C#] 二进制, 十进制, 十六进制, 进制转换
在源码中:C# 中允许在代码中使用 0x 开头的十六进制数字, 以及 0b 开头的二进制数字来表示一个整数. 下面的语法是合理的.int a = 123;int b = 0xFF;int c = 0b10010;数字转换将一个数字转换为某进制的字符串, 有两种方式:// 第一种: 使用 Convert 类. 可转换为 二进制 八进制 十进制 十六进制Convert.ToString(10, 2); // 二进制, 返回 "1010"Convert.ToString(10, 8);原创 2021-04-06 22:37:59 · 1587 阅读 · 0 评论 -
[C#] WPF TextBox 在 PreviewDragEnter 中指定 Effect 且指定 Handled 为 true, 仍然无法正常实现拖拽操作.
在开始之前, 请先阅读这篇文章: [C#] WPF Preview 事件与普通事件的区别我们知道, 某些控件会对事件进行处理, 导致部分事件我们无法正常使用, 对于 TextBox, 显而易见的是关于拖拽的事件完全不能正常使用. 因而我们需要使用 Preview 事件.对于一套拖拽操作, 有以下过程:用户拖拽数据进入控件 (DragEnter)用户拖拽数据在控件上移动 (DragOver)用户拖拽数据在控件上松开鼠标 (Drop)对于一个控件, 必须指定这个控件的 AllowDrop 属性为原创 2021-03-19 19:44:01 · 517 阅读 · 0 评论 -
[Python] 巧用! 局域网传输文件! 还可以这么玩!!!
之前… 我知道了 Python 有着内置的网络库, 甚至可以直接用来原地开一个 http 服务器!最近… 频繁的需要在局域网内传输大文件… 用 U 盘当然可以, 但完全没必要, 太浪费了也试着用 Python 的套接字来手动将文件数据发送到另一台机器, 然后另一台机器也用 Python 套接字来接收, 并直接写入到文件… 好吧我知道很麻烦没错然后… 我突然想起… Python 开那个 HTTP 服务器可不就能直接用来分享文件啊卧槽?于是…python -m http.server成功了… 而且原创 2021-03-19 18:42:42 · 285 阅读 · 0 评论 -
[笔记] 记录一次该死的 “玄学“ Bug, 赶紧看看避开这个坑!!! .NET Core, Delegate.BeginInvoke, PlatformNotSupportedException
概述:没事闲着别总是玩异步, 否则可能就会像我这样出现线程问题这件事:首先是… 报了一堆 “平台不支持的” 错误.堆栈显示也看不出来是哪里的问题, 但我看到了 Threading 这玩意儿…:最后通过 “死亡断点” 发现是这里出的问题, 这是一个异步操作的回调函数.进一步调试, 发现是这里, 这里又会 Invoke 一个事件:好家伙, 又是一个事件… 然后我看了看订阅了这个事件的地方…乍一看, 没啥毛病! 但问题确实出在这里! (我实在是太菜了)最后… 我思原创 2021-03-09 21:48:03 · 506 阅读 · 0 评论 -
[WPF] Matrix Transform, 矩阵变换. 最最最基础的原理解释.
关于向量:1. 向量的基在计算机科学中, 向量, Vector, 通常这么表示:[xy]\left[\begin{array}{cc}x\\y\end{array}\right][xy]向量有两个 “基”, i‾\overline{i}i, 即 1,0→\overrightarrow{1, 0}1,0, j‾\overline{j}j, 即 0,1→\overrightarrow{0, 1}0,1向量可以看作一组数乘以这些基的结果, 即: v‾=a×i‾+b×j‾\ov原创 2021-03-08 11:59:48 · 2130 阅读 · 1 评论 -
[干货] 一篇文章完全搞懂面向对象基本概念
今天我一个朋友, 突然问我, 在程序入口所用的类中, 为什么字段需要加static…好家伙, 一听就是没懂啥是面向对象! 我也看了网上的一大堆东西, 啊说啥继承, 多态, 反正我是菜鸟的时候是没听懂这些东西, 后来还是我自己摸索出来的 (嘤嘤嘤QAQ)好的, 我们使用 C# 来做演示, 大概了解一下类的最基本概念. 来整一个, 数组拓展.演示代码片:public class ArrayHelper{ public int[] Source; // 字段 public st.原创 2021-03-07 16:15:50 · 293 阅读 · 0 评论 -
[Web前端] 子元素设置高度为100%, 却没有与父元素对齐高度.
大概描述一下我遇到的情况.父元素没有明确指定高度, 但是其中一个子元素的高度是确定的, 并且通过这个高度将父元素的高度撑起来. 另一个子元素的高度是100%, 即, 我想要使它与父元素的高度统一.但是, 指定高度100%的子元素没有与父元素的高度统一.不过, 如果明确而制定了父元素的高度为某一确定值, 那么这个指定高度100%的子元素的高度就生效了.奇怪的玄学问题增加了有几种解决方式供参考:使用绝对定位, 设置top和bottom为0使用表格布局, 这个我没用样式做过, 属性可以轻易做到原创 2021-03-07 09:33:39 · 1135 阅读 · 1 评论 -
[Web前端] Margin 失效问题, 设置了 Margin 却不见效果, 解决方案.
首先演示下:.box1{ width: 300px; height: 300px;}.box2{ width: 200px; height: 200px;}.box3{ width: 100px; height: 100px;}.border-with{ border: solid 1px pink;}.padding-with{ padding: 1px;}.style-pink{ background-colo原创 2021-03-07 09:26:31 · 4349 阅读 · 2 评论 -
[C#] MCI 详解与封装类, MCI 播放音乐, 获取播放状态, 获取音频长度, 进度调整,
淦!琢磨了一晚上啊, 总算有些眉目了.首先, MCI的全称是Multimedia Control Interface, 即多媒体控制接口, 通过它, 我们可以做到播放音频视频, 甚至录制音频, 虽然古老, 但是真的强大.注意, 文章较官方文档有不少删减, 如果看标准内容, 还是看官方文档比较好.MCI Command Strings 官方文档: Microsoft Command Strings - Win32 app | Microsoft Docs哦对了, 文档是纯英文哦~理论基础:原创 2021-02-11 10:21:11 · 2373 阅读 · 6 评论 -
[C#] WinForm 与 WPF 获取命令行参数
推荐方法:using System;Environment.GetCommandLineArgs(); // 返回 string[]注意, 与控制台程序入口处的string[] args相比较, 这个函数返回的结果是完整的命令行, 也就是包含程序自身路径. 例如我一个没有传递任何参数的程序:所以注意区分哦.其他:WinForm在 Program.cs 的 Main 入口参数处添加 string[] args, 然后你可以更改窗体的构造函数, 使其能够接收这个args.WPF暂时不原创 2021-02-09 03:04:19 · 748 阅读 · 0 评论 -
[踩坑记录] C# 源代码被误删, 通过反编译之前编译好的文件来拯救这一切, 三款反编译工具对比
事件:首先, 语言是C#, 然后我把代码给删了… 但是在删之前, 我编译过一次, 所以… 我就想着使用反编译工具来搞了.我知道的有两个反编译工具, dnSply 和 ILSpydnSpy是ILSpy的一个分支(dnSpy is a .NET assembly editor, decompiler, and debugger forked from ILSpy)开始吧:> 首先, 是 dnSpy 上场:乍一看, 没啥问题, 但是, 会有很多毛病哦~ 一一道来吧:dnSpy 的反编译结果原创 2021-02-06 01:24:02 · 3664 阅读 · 1 评论 -
[踩坑记录] 某功能在C#7.3中不可用,请使用 8.0 或更高的语言版本 (通用解决方案)
问题:正如标题描述, 是某个语法在低版本中不受支持, 只需要升级到高版本即可.步骤:> 第一种 :使用快捷键 Alt + Enter 或点击黄色的的提示调出快速操作选择 将该项目升级为 C# 语言版本 “8.0”如果没有这一选项, 继续看第二种.> 第二种 :打开项目所在目录并打开项目文件.在 PropertyGroup 节点下添加 LangVersion, 如图:第二种其实就是通过更改 csproj 文件内容来置顶所使用的语言版本, 某些时候可能在这个原创 2021-02-06 00:26:32 · 34516 阅读 · 7 评论 -
[项目实例] 手把手教你使用Python写一个功能非常强大的翻译程序
关于:程序是借助API的(废话), 所以在无网络时, 没办法使用. 成品下载地址在文章末.准备工作:导入库, request(发送请求) 和 json(解析返回数据).开搞:首先, 是找到我们所需要的API, 瞧瞧这个链接: 有道翻译体验虽说是体验, 但是我都用了巨长一段时间却没有任何问题, 看来这个API至少短时间内不会有任何变更了~然后就是破解API的请求内容了. 打开浏览器调试, 转到网络选项卡, 然后重新翻译一下, 好的, 结果很明显, 芜湖 ????post请求, 3个参数,原创 2021-02-04 05:02:41 · 837 阅读 · 2 评论 -
[C#] 单文件编译 - 编译时嵌入dll
1.打开 NuGet 包管理器位于 工具 -> NuGet 包管理器 -> 管理解决方案的 NuGet 程序包2. 安装搜索 Costura.Fody 并将其安装到你的项目3. 起飞然后, 进行编译, 你就会发现! 所有的dll全部被打包进exe中啦~~~...原创 2021-02-03 06:56:00 · 656 阅读 · 2 评论 -
[项目实例] 使用 IronPython 库来创建一个支持使用Python脚本操作的简易文本编辑器
步骤 :打开 nuget 包管理器, 工具 -> NuGet 包管理器 -> 管理解决方案的 NuGet 程序包.在 nuget 包管理器中找到 IronPython, 安装到你的项目.using 所需的命名空间, Microsoft.Scripting, Microsoft.Scripting.Hosting, Microsoft.Win32, IronPython.Hosting.创建 Python 引擎:ScriptEngine engine = Python原创 2021-02-03 06:43:09 · 425 阅读 · 0 评论 -
[踩坑记录] ASP.NET Core System.Data.SqlTypes.SqlNullValueException: 数据为空。不能对空值调用此方法
问题是出在这里的:SoftwareInfo result = new SoftwareInfo(reader.GetString(1), // reader 是 MySqlDataReader 实例reader.GetString(7)){ ID = reader.GetInt32(0), Label = reader.GetString(2), Coder = reader.GetString(3), DownloadCount = rea原创 2021-01-29 05:07:08 · 867 阅读 · 2 评论 -
[Android] Android Studio入门 - 1.初识IDE
Android 入门:我也是初学 Android Studio (甚至不到一个星期), 也察觉到了… 关于这方面的图文资料居然那么少, 全都是视频教程, 为了想要节省时间的同学着想, 我挺身而出了.不是适合所有人哦~ 你得懂一些英文, 你需要有Java基础, 不需要技术多厉害, 会写Hello world就行.但是如果你不满足条件, 推荐你去B站找视频教程.下载IDE下载肯定简单咯, 直接去官网吧: 链接地址, 然后, 额, 我相信你的英文水平足以支持你找到下载按钮的,安装IDE安装也原创 2021-01-20 04:52:13 · 298 阅读 · 0 评论 -
[Web] 浅谈 Get 与 Post 请求
Get 与 Post 请求HTTP请求:前端与后端的数据传递是通过 HTTP 请求实现的, 浏览器(前端)向服务器(后端)发送一个 HTTP 请求, 后端对请求进行处理, 然后再给浏览器发一个响应, 这就是 HTTP 的基本概念.get 和 post 是HTTP请求的两种方式, 最明显的区别是传递参数.如果你不大了解 HTTP 请求, 可以先查看文章末对 HTTP 的简述.Get:关于 Get 请求get 一般用来获取数据, 因为其本意就是获取. 浏览器访问一个页面时, 发送的第一原创 2021-01-05 17:32:52 · 463 阅读 · 1 评论 -
C# 动态输入
C# 动态输入,在输入时你也可以访问你写入的内容1.缘由1.缘由. 最开始是我在写一个网络聊天程序(其实简陋的要命),然后服务端懒得写界面,就直接用的控制台,然后又想实现一些小指令,比如禁言,踢人,禁IP什么的,但是服务端在接收消息后就会直接将消息信息打印在控制台上例如这样 (下划线是光标所在处)老王 : 哎,房租又涨了,又得吃土了老张 : 啧啧啧,又在炫富了,我连土都莫得吃_但...原创 2020-04-06 03:48:49 · 615 阅读 · 0 评论 -
[Linux] 执行但不阻塞 以‘后台‘模式启动程序或脚本
1. 使用 ‘&’ 符号:例如启动一个脚本,执行 ‘./idea.sh’ 以启动idea,但终端会被阻塞,若终端被关闭,idea也就被关闭。此时,执行 ‘./idea.sh &’ 可以使 idea 脱离当前终端运行,即便当前终端被关闭,idea也不会受影响。./idea.sh # 会阻塞当前终端进程./idea.sh & # 不会阻塞2. 使用 ‘nohup’ 指令:参考 菜鸟教程 - nohup指令参考文章:Linux后台执行命令(非阻塞式)原创 2020-12-18 01:16:10 · 3359 阅读 · 0 评论 -
Ubuntu 新手引导 - 中文输入法配置
选择输入法框架:Linux中,有多个输入法框架可供使用,在 Ubuntu 中,默认预装了 ibus 这款输入法引擎,常用的中文输入法引擎有两种,ibus 与 fcitx。两者都还彳亍,懒得下载的话,就直接用ibus吧。配置使用的输入法框架:打开终端,执行 ‘im-config’,在弹出的窗口中,选择ok,yes,然后选择 ibus,于是,你就成功使用了ibus框架。同理,选择 fcitx 则是使用 fcitx 框架,至于安装 fcitx,见文章末。选择输入法引擎:关键的时刻到咯,那么对于ibu原创 2020-12-17 23:39:37 · 1454 阅读 · 0 评论 -
Kali Linux 新手引导 - Xfce桌面时间配置
关于我的Kali系统:操作系统:Linux NullKali 5.9.0-kali2-amd64 #1 SMP Debian 5.9.6-1kali1 (2020-11-11) x86_64 GNU/Linux桌面环境:Xfce Desktop Environment Version 4.14, destributed by Debian打开时间配置:位于固定’任务栏’的右侧, 右击时间,选择Properties(属性)进行调整:亦见:Kali Linux 新手引导原创 2020-12-09 12:23:11 · 1551 阅读 · 0 评论 -
Kali Linux 记录 - 死锁,依赖 ‘Unable to install new version of ...libpng12.so.0 no such file or directory‘
概述:在使用apt或dpkg安装deb包时, 出现了no such file or directory的错误要点:在dpkg时是否指定了错误的路径包对于系统来说是否过旧我的解决过程:我遇到的问题属于要点中的后者, libpng12对于我的系统来说太旧了。具体情况是这样的, 我在使用apt安装一些软件时, 发现, 一直报依赖问题, 让我执行‘apt --fix-broken install’(即‘apt -f install’), 但当我执行时, 它尝试安装的libpng12-0始原创 2020-12-08 19:54:44 · 787 阅读 · 0 评论 -
Kali Linux 新手引导 - 配置中文输入法
关于我的Kali系统:操作系统:Linux NullKali 5.9.0-kali2-amd64 #1 SMP Debian 5.9.6-1kali1 (2020-11-11) x86_64 GNU/Linux桌面环境:Xfce Desktop Environment Version 4.14, destributed by Debian安装输入法框架Fcitxsudo apt install fcitx# kali默认是装了fcitx的, 如果没有安装, 就执行上边的指令安装吧安装好用的原创 2020-12-07 20:35:24 · 760 阅读 · 0 评论 -
Kali Linux 新手引导 - 区域与语言配置
关于我的Kali系统:操作系统:Linux NullKali 5.9.0-kali2-amd64 #1 SMP Debian 5.9.6-1kali1 (2020-11-11) x86_64 GNU/Linux桌面环境:Xfce Desktop Environment Version 4.14, destributed by Debian配置区域tzselect# 在Shell中执行即可, 内容来自网络配置语言sudo dpkg-reconfigure locales# 配置完后记得重原创 2020-12-07 16:50:05 · 1520 阅读 · 0 评论 -
[Win32] Windows API 函数后缀(A,W,ExA,ExW)的作用
资料来自网络, 在此整理到一起A表示使用ANSI编码作为标准输入与输出流的文本编码W表示使用Unicode作为编码Ex表示拓展, 标注了Ex的winapi函数会比没有标Ex的函数多一些参数什么的, 可以说拓展了一些功能ExA 与 ExW 就是 A,W与Ex的结合了...原创 2020-11-20 03:32:37 · 3144 阅读 · 0 评论 -
[C#] 各种关于类型与反射的常用操作. 类型操作, 根据Type进行类型转换, 接口获取与比较, 泛型接口获取与比较, 类的字段获取与设置.
直切入正题本文章是面向初学者的一些资料注意: 存在即合理, 可能某些初学者认为这些东西并无必要, 但实际上它们有很大的用处获取类型(Type)对象object obj;Type objType = obj.GetType();判断类型是否可以转换这个方法同样可以判断B是否继承于A(可以是类和接口), 但是如果你要判断一个类是否继承了一个泛型接口, 不指定相同的泛型参数, 是无法判断成功的, 比如一个继承了Demo<string, string>接口的类在使用下面的方法来判断原创 2020-10-19 21:16:01 · 903 阅读 · 0 评论 -
记录一次经验:Image.Save遇到A generic error occurred in GDI+异常
要点:先看自己路径是不是错了然后看自己的路径表达是不是不符合标准, 例如这样的"/ewq_00010.png", 它指向C:\根目录下的一个文件! 而.NET中一般不允许对那里进行写操作然后, 我就是在上述内容的情况上犯了错… “/ewq_00010.png"应该是”./ewq_00010.png", 使用这个点来表示, 它是一个相对路径我的解决过程Image 保存的Path是"/ewq_00010.png"在发现这个问题后, 我首先是检查了一下, 我写的路径是否是正确的, 比如, 目原创 2020-08-26 21:59:19 · 1483 阅读 · 0 评论