一:背景 1. 講故事 前些天有位朋友在微信上找到我,說他的系統有偶發崩潰,自己也沒找到原因,讓我幫忙看下怎么回事,我分析dump一直都是免費的,畢竟對這些東西挺感興趣,有問題可以直接call我,好了,接下來我們就來分析dump吧。 二:程序為什么會崩 1. 觀察崩潰上下文 windbg有一個厲害之 ...
一:背景 1. 講故事 調試訓練營里的一位學員前些天找到我,說他們跑在k8s中的程序崩掉了不知道怎么回事?日志也沒有記錄到,讓我幫他看看,dump也抓到了,既然抓到了那就看看吧。 二:程序為什么會崩潰 1. 崩潰原因 linux 上的崩潰分析沒有windows上那么方便,但還是可以分析的,先通過 ! ...
一、前言 超長路徑(MAX_PATH)的問題,在很多地方都可能遇到,常見的解決辦法無非三種:添加前綴\\?\、app.config添加配置、修改注冊表等。 而對于其它第三方的DLL,我們如何去從外部解決呢?答案是:反射。 本篇文章,我們就以DotNetZip為例,一步步來解決超長路徑的問題。 **相 ...
Span 存在一個局限性, 它使用的是 int (Int32: 32位整數) 類型的索引. 即使是在 64位操作系統中, 它僅能訪問最長 2G(`2^31`) 的數據. 而 `Marshal.AllocHGlobal` 方法在分配內存時支持 nint (IntPtr: 原生整數) 類型的長度, 在 ... ...
1.ERP(企業資源計劃) 英文全稱:Enterprise Resource Planning 定義:由美國Gartner Group公司于1990年提出,是以管理會計為核心可以提供跨地區跨部門、甚至于跨公司整合實施信息的企業管理軟件。企業資源計劃是指建立在信息技術基礎上,以系統化的管理思想,為企業 ...
目錄C#實現歐姆龍 HostLink 通訊協議庫背景介紹歐姆龍 PLC 內存區域介紹歐姆龍 PLC 數據類型對應歐姆龍 PLC 與 PC 的 RS232 接線線序HostLink通訊報文分析C-Mode通訊報文分析FINS-Mode通訊報文分析HostLink通訊協議庫的C#實現核心實現(FCS校驗 ...
Blazor Hybrid 插件使采用了 WinFormedge 的應用程序能夠無縫集成 Blazor 組件。通過這個插件,開發者可以利用 Blazor 的現代 Web UI 框架與傳統的 WinForms 相結合,使用 C#、HTML 和 CSS 構建交互式、基于組件的用戶界面。這種混合方法將 W... ...
在實際開發中,經常遇到程序崩潰閃退或者卡死的問題,在遇到這種問題的時候,往往很難捕捉異常,且日志也無法正確記錄到問題發生的位置。在Windows操作系統中,dump文件就可以記錄并保存程序崩潰時的快照,今天我們通過一個小例子,簡述一種生成dump文件的方法,僅供學習分享使用,如有不足之處,還請指正。 ...
這是一個基于 Microsoft WebView2 的 .NET 開源庫,您可以使用 HTML、CSS 和 JavaScript 輕松構建強大的 WinForm 應用程序。 ...
一、先總結一下以前的經驗 本人前公司項目開發基本算是CQRS的,但是有些繁瑣 后臺和數據接口用.net(后大部分轉java),前臺nodejs 數據統計用hive,hive每天凌晨同步數據 但是涉及列表含模糊搜索基本都是交給站內搜索團隊,他們用Lucene,搜索每天抓取全量數據,定時(比如5分鐘)抓 ...
一:背景 1. 講故事 上一篇我們說到了 minhook 的一個簡單使用,這一篇給大家分享一個 minhook 在 dump 分析中的實戰,先看下面的線程棧。 0:044> ~~[138c]s win32u!NtUserMessageCall+0x14: 00007ffc`5c891184 c3 r ...
一、前言 就像開發的教程都從“Hello World!”開篇一樣,系列開始,我們也從一個最最簡單的功能開始:畫一個能拖動的矩形。 順便說一下,另一篇教程:(原創)[C#] GDI+ 之鼠標交互:原理、示例、一步步深入、性能優化 講的更詳細和深入,可以作為補充。 就讓我們從一個能拖動的矩形開始我們的流 ...
為什么要學習linq :使處理數據變得簡單 需求: 統計一個字符串中每個字母出現的頻率(忽略大小寫),然后按照從高到低的順序輸出出現頻率高于兩次的單詞和其出現的頻率 var items = s.Where(c => char.IsLetter(c))//過濾非字母 .Select(c => char ...
一、有什么用? 問:現在這個年代哪些場景還需要GDI+? 答:很少,主要是在上位機,復雜一點的自定義控件幾乎全由GDI+繪制而成。而且很多工業設備的電腦性能差,WPF等帶不起來,只能是Winform。 問:本系列文章的對于GDI+掌握有什么幫助? 答:這是一個完整的完全由GDI+實現的復雜程序,對于 ...
前言 在之前的系列文章中,我們已經搭建了基本的硬件平臺和軟件架構,但有一個問題一直困擾著我:當做好一個差不多的機器人帶到新環境時,如何讓它連接到新環境的WiFi網絡呢? 傳統的做法可能需要連接鍵盤鼠標,顯示器,然后進行可視化界面操作,這在實際應用中非常不便。于是我就想著用.NET技術解決這個痛點,實 ...
我讓DeepSeek幫我寫了一段使用 CancellationTokenSource 取消任務的簡單示例如下: 取消任務的簡單示例 using System.Threading.Tasks; using System.Threading; public async Task Test() { var ...
最近碰到一個Html轉PDF的需求,看了一下基本上都是需要依賴Wkhtmltopdf,需要在Windows或者linux安裝這個可以后使用。找了一下選擇了HtmlToPDFCore,這個庫是對Wkhtmltopdf.NetCore簡單二次封裝,這個庫的好處就是通過NuGet安裝HtmlToPDFCo ...
老周不經意間翻了一下博客列表,上一篇水文竟然在 一個月前。啊,大海啊,全是水;時間啊,你跑得真快!過了一個月老周竟沒感覺出來,可是這一個月里,好像啥事也沒干成,就改了一下幾個舊項目。也許是現在大環境真的不好,新項目不好找。新的活有是有,比較簡單,卻很奇怪,比那貨難的項目都做過,偏偏這貨沒頭緒。這東西 ...
前言 自從.NET Framework 3.5提供了LINQ之后,集合數據查詢基本被LINQ統一了。這大幅提高了編寫數據查詢代碼的效率和質量,但是在需要編寫動態查詢的時候反而很困難,特別是最常用的where和order by子句,他們的參數是Expression。編寫靜態查詢的時候編譯器會自動把代碼 ...
流程節點附件設置 WikeFlow官網:http://www.wikesoft.com 有些流程要求某些節點必須上傳附件。 你只需要在流程節點中配置附件的Key,附件名稱,是否必傳。 如下圖: 文件存儲 附件會上傳到應用根目錄下面的Upload文件夾下面。 流程引擎如何調用上傳 FileUpload ...