
windows
文章平均质量分 68
arbboter
也曾梦想上天,还是默默无闻,而今迈步从头越
展开
-
【C++接入大模型】WinHTTP类封装:实现对话式大模型接口访问
本博客详细解析了基于WinHTTP封装的C++ HTTP客户端类SimpleHttp的设计与实现。该类支持同步/异步请求及流式数据处理,核心功能包括:1)通过WinHTTP API实现HTTP/HTTPS通信,自动处理SSL加密;2)采用多线程技术分离数据接收与主线程,通过线程安全队列实现流式响应缓存;3)提供简洁接口封装GET/POST请求,支持自定义请求头与JSON参数;4)异常处理机制覆盖网络错误、HTTP状态码校验及资源释放。特别针对流式场景设计了TryFetchResp轮询接口原创 2025-03-27 18:49:16 · 838 阅读 · 0 评论 -
Windows下C++实现GBK与UTF-8编码互转:原理与实战
通过理解上述原理和代码,开发者可以轻松应对Windows环境下的字符编码转换需求。完整代码已通过内存安全验证,可直接集成到项目中使用。Windows API提供了。原创 2024-09-03 13:45:33 · 462 阅读 · 0 评论 -
深入浅出解析C# DLL注入技术:原理、实现与关键细节
【代码】C# 远程注入Dll。原创 2024-06-20 16:24:19 · 657 阅读 · 0 评论 -
C#ListView的单元格支持添加基本及自定义任意控件
本来想着在单元格里面实现控件的自绘的,但是没找到办法,最后是通过在单元格的表面显示对应控件的,浮于表面达到目的。原创 2024-06-18 13:31:44 · 1189 阅读 · 0 评论 -
C#自定义标签编辑框
经常用到标签和输入框(如文本、下拉列表、富文本)的组合场景,但是一直没趁手的现成控件,于是自己封装了一个,泛型标签输入框:使用示例如下:原创 2022-11-28 09:40:49 · 793 阅读 · 0 评论 -
C#多选下拉框实现
C#多选下拉框实现网上找了一圈,没有找到比较轻量好用的该种功能的控件,所以自己实现了一个。效果如如下:思路1.基于原生控件ComboBox和CheckedListBox来实现,其中ComboBox负责显示多选结果和提供下拉按钮,然后CheckedListBox负责提供下拉多选操作2.ComboBox设置为自绘,DropDownStyle为ComboBoxStyle.DropDown,下拉高度为1,属性代码设置代码参考如下:ComboBox = new ComboBox();ComboBox.原创 2020-11-27 15:59:03 · 15889 阅读 · 6 评论 -
C\C++控制台颜色设置类
windows和Linux都可用的一个类...用来设置颜色,没有太复杂,简单够用吧。#ifdef _WIN32#include class FontColor{public: FontColor() { m_hStdOut = GetStdHandle(STD_OUTPUT_HANDLE); } void SetColor(int nColor) { SetConso原创 2014-08-27 16:07:17 · 2066 阅读 · 0 评论 -
简单的函数热点分析类
一个实现监视函数耗时和调用的lei原创 2014-08-26 10:36:39 · 2009 阅读 · 0 评论 -
精准的计时类
class MyTimeCount{public: MyTimeCount() { QueryPerformanceFrequency(&fr); } ~MyTimeCount() { } void Start() { QueryPerformanceCounter(&bg); ed = bg; } float Stop() { QueryPerform原创 2014-08-23 09:54:08 · 1479 阅读 · 0 评论 -
设置文件大小
HANDLE hFile1 = CreateFileA("F:\\2.log", FILE_GENERIC_READ | FILE_GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, 0, NULL); if(INVALID_HANDLE_VALUE != hFile1) { LARGE_INTEGER liSize = {1024*102原创 2014-08-07 09:23:15 · 1807 阅读 · 0 评论 -
IO异步机制
#include #include #include #include #include using namespace std;vector pTempInfo;VOID WINAPI APC_A ( DWORD dwError, DWORD cbTransferred, LPOVERLAPPED lpo ){ pTempInfo.push_back ( "执行IO_A的完原创 2014-08-07 10:14:07 · 1159 阅读 · 0 评论 -
命名管道【阻塞式】
参考:http://www.cnblogs.com/BoyXiao/archive/2011/01/02/1924188.html原创 2014-07-31 15:27:24 · 1815 阅读 · 0 评论 -
匿名管道
原:http://bbs.pediy.com/showthread.php?s=&threadid=26252自己封装的一个类:原创 2014-07-29 17:39:39 · 1136 阅读 · 0 评论 -
一种线程调度策略【线程需要的时候运行,不需要的时候暂停】
1.背景比如注册用户的时候需要发送邮件,但是发送邮件有一定的延时,所以注册的时候是发邮件的同时,返回注册成功给用户,而发邮件则由发邮件线程处理?如何处理发邮件的线程呢?我目前想到的有:1.每次需要运行时临时创建线程;2.线程每次执行完毕后自行Sleep一定的时间,等待结束后检查是否有需要运行的必要,否则进入Sleep。第一个方法由于每次都要起一个线程,然后又关掉线程,反反复复不好,而且还有其他原创 2014-07-31 11:49:56 · 1629 阅读 · 0 评论 -
CListCTrl排序
通过以下方法可以实现排序的。原创 2014-08-04 11:42:48 · 1459 阅读 · 0 评论 -
堆异常检测-MS-Visual Studio
在向系统申请堆空间的时候,虽然程序员不知道所申请的堆空间的数据结构,但是系统或者啥(微软可以知道)知道的,所以如果我们需要检查堆的使用异常,需要借助微软提供的机制来检堆的正常使用,从而发现在程序过程中出现的非法使用堆的情况,保证我们程序的高质量!这里面最重要的函数莫过于_CrtCheckMemory(),该函数使用简单,在需要测试堆异常的代码的开始和结束端分别调用即可。具体例子如下所示:#incl原创 2014-07-04 15:49:06 · 2129 阅读 · 0 评论 -
进程管理器
仿XueTr的进程模块做的一个关于jinc原创 2014-09-13 15:04:17 · 1324 阅读 · 0 评论 -
Windows地址(IP)设置批处理
@echo off:startecho 1. Autoecho 2. Staticset /p option=请选择上网方式:if "%option%"=="1" goto auto_ipif "%option%"=="2" goto static_ipgoto start:static_ipecho 正在手动设置IP地址,请稍等......netsh interface原创 2014-11-28 17:51:50 · 1414 阅读 · 0 评论 -
协程库libco学习使用入门示例
简介libco是微信后台大规模使用的c/c++协程库,2013年至今稳定运行在微信后台的数万台机器上。libco通过仅有的几个函数接口 co_create/co_resume/co_yield 再配合 co_poll,可以支持同步或者异步的写法,如线程库一样轻松。同时库里面提供了socket族函数的hook,使得后台逻辑服务几乎不用修改逻辑代码就可以完成异步化改造。libco是一个源码简洁而...原创 2019-09-25 17:32:09 · 6971 阅读 · 8 评论 -
Visual Studio 2019 + WSL + Linux(Ubuntu)程序配置开发
安装Visual Studio 2019在安装Visual Studio 2019时,需要勾选Linux开发环境选项,即勾选“使用C++的Linux开发”工具集,如下图所示:创建Linux类型项目启动已经安装好的Visual Studio 2019,创建新项目选择,如下图所示:项目新建完成后,IDE已经自动帮我们编写完成一个HelloWorld的程序代码。因为程序需要在Linux上编译...原创 2019-09-25 17:27:07 · 16168 阅读 · 0 评论 -
DLL隐藏技术(抹链)
#include "HideDLL.h"#include DWORD g_dwImageSize = 0;VOID* g_lpNewImage = NULL;/************************************************************************//* 把当前进程的所有DLL都使用LoadLibrary再次加载一边,增加引用计翻译 2014-07-29 10:52:51 · 10182 阅读 · 1 评论 -
C\C++小知识汇总
类的大小空类(不含成员变量和虚函数):因为对象不可能不占内存,否则这个对象怎么存在,所以C++规定空类对象内存大小为1。 class EC{public: EC(){} ~EC(){}; void EC1() { printf("EC1\n"); }};class EVC{public: EVC(){} ~EVC(){}; void EVC1() { ...原创 2014-05-13 17:06:28 · 1939 阅读 · 0 评论 -
程序的启动和退出过程详解
Windows支持两种类型的应用程序。一种是基于图形用户界面(GUI)的应用程序,另一种是基于控制台用户界面(CUI)的应用程序。 基于G U I 的应用程序有一个图形前端程序。它能创建窗口,拥有菜单,可以通过对话框与用户打交道,并可使用所有的标准“Wi n d o w s ”组 件。Wi n d o w s 配备的所有应用程序附件(如Notepad 、Calculator 和WordPad ),翻译 2015-03-06 11:09:44 · 4140 阅读 · 0 评论 -
关于Windows内存结构
约定:讨论范围是默认的32位的windows NT系统原创 2014-08-09 14:26:48 · 1505 阅读 · 0 评论 -
线程同步-临界区对象
1、临界区对象临界区是保证在某一个时间只有一个线程可以访问数据的方法。使用它的过程中,需要给各个线程提供一个共享的临界区对象,无论哪个线程占有临界区对象,都可以访问受到保护的数据,这时候其它的线程需要等待,直到该线程释放临界区对象为止,临界区被释放后,另外的线程可以强占这个临界区,以便访问共享的数据。2、主要的函数方法InitializeCriticalSection(&c原创 2015-01-19 09:42:56 · 2347 阅读 · 0 评论 -
内存管理分析
题目:分析下面代码的运行结果。#include char *GetMemory(){ char a[] = "hello,world"; /* char *a = "hello,world";//这样声明的话有效 */ return a; }int main(int argc, char *argv[]){ printf( "%s\n", GetMemory() )原创 2015-01-19 09:40:09 · 1752 阅读 · 0 评论 -
C++开源库之Curl
关于Curl库curl 是一个利用URL语法在命令行方式下工作的文件传输工具。它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。curl不但提供了一个可执行的工具库,还提供了供程序开发的libcurl库,该库使用c语言编写,支持跨平台,libcurl的下载地址点这里。下载的安装包里面有个Project文件夹,该原创 2015-02-03 12:41:22 · 14580 阅读 · 0 评论 -
MarkDown学习
概要Markdown 的目标是实现「易读易写」。可读性,无论如何,都是最重要的。一份使用 Markdown 格式撰写的文件应该可以直接以纯文本发布,并且看起来不会像是由许多标签或是格式指令所构成。Markdown 语法受到一些既有 text-to-HTML 格式的影响,包括 Setext、atx、Textile、reStructuredText、Grutatext 和 EtText,而最大...原创 2014-12-22 19:28:24 · 1855 阅读 · 0 评论 -
程序自动生成dump文件
作用可以再程序崩溃后保留崩溃现场,方便事后查找程序的崩溃原因。前提是奔溃程序所对应的代码和PDB文件都是匹配的(发布程序的时候,保留源代码和PDB文件)。代码示例原理是使用DbgHelp的自定义未处理异常来保留崩溃现场到文件的,使用直接包含该头文件,然后再main函数的开始就调用EnableAutoDump函数。// pro_dump.h// 包含本文件是原创 2014-05-29 09:59:32 · 3966 阅读 · 0 评论 -
枚举进程列表
#include "test1.h"#include #include #include "psapi.h"#pragma comment(lib, "psapi.lib")/************************************************************************//* 快照方式原创 2014-05-26 17:25:13 · 1484 阅读 · 0 评论 -
WinDbg命令详解--进程
指令列表.tlist 查看进程简要信息:进程号和进程名称.tlist 查看进程详细信息:进程号和进程名称,命令行参数,SessionID,用户等信息!teb 线程块环境信息!peb 进程块环境信息lm 查看模块的简要信息lm -v 查看模块的相信信息!handle 查看句柄表信息!handle id 查看特定的句柄信息原创 2014-03-17 10:22:12 · 2700 阅读 · 0 评论 -
WinDbg命令详解--命令帮助
标准命令B[C|D|E][] - clear/disable/enable breakpoint(s)BL - list breakpointsBA - set processor breakpointBP - set soft breakpointD[type][] - dump memoryDT [-n|y] [[mod!]name] [[-n|y]fields] [a原创 2014-03-18 09:51:35 · 2628 阅读 · 0 评论 -
WinInet API浅谈
API列表InternetAttemptConnect原创 2014-05-12 11:25:51 · 2549 阅读 · 0 评论 -
【2】使用DuiLib的XML文件创建界面
简述原创 2014-05-15 14:17:07 · 4250 阅读 · 0 评论 -
程序地址重定位和模块绑定
1.程序的构建在构建程序的时候,链接器都会给程序设置一个默认的加载地址,即首选基地址,它表示该模块被映射到进程地址空间时最佳的内存地址。默认情况下,对于EXE程序而言,windows链接器会将它的首选基地址设置为0X400000(四十万),而DLL程序的首选基地址则被设置为0X10000000(1千万),然后链接器将该地址以及一些相关数据和代码的地址写入到PE文件中。首选基地址的是为了系统程序原创 2014-05-09 19:36:31 · 4004 阅读 · 0 评论 -
【进程间通信】共享文件映射
FileMap.h#include "..\include\error_type.h"#include #include #include using namespace std;class FileMap{public: FileMap(const string& path, const string& name); ~FileMap(); file_map_crate_原创 2014-05-09 19:29:27 · 1207 阅读 · 0 评论 -
CListCtrl常用方法
1.设置列表风格//设置列表风格LONG styles;styles = GetWindowLong(m_list.m_hWnd,GWL_STYLE);styles &= ~LVS_TYPEMASK;styles |= LVS_REPORT ;SetWindowLong(m_list.m_hWnd,GWL_STYLE,styles);m_list.SetExtendedStyl原创 2014-05-09 19:37:42 · 1466 阅读 · 0 评论 -
Visual Studio注释模板
前言 有时写代码需要写注释的时候 甚是苦恼 写吧 怕麻烦 不写吧 似乎这代码估计自己都看不懂 权衡之下 似乎找一个自动写注释的方法最靠谱 一直在VS下开发 偶尔听人说过有一个宏工具可以帮助开发者快速注释 但是原创 2014-05-09 19:35:08 · 2121 阅读 · 0 评论 -
Visual Studio内存泄露检测工具
使用简介 在写程序的过程中,难免会遇到内存泄露的时候,这个时候如果手工差找内存泄露,不说方法没有通用的,就是真的自己手工查找也是很耗时间和精力的。诚然,我们可以借助一些工具,而且我们还会惊奇地发现这些工具很有用(比如Intel的内存泄露检测工具),但是因为往往这些工具安装比较麻烦,而我们写的程序又不是很大,所以我们或许可以找个更小巧的方法。微软就提供了这样的方法,我们只需要在程序中加入几原创 2014-05-08 18:27:58 · 5961 阅读 · 0 评论 -
CListCtrl自绘
CListCtrl绘制有很多阶段,响应控件的NM_CUSTOMDRAW消息后,yaopanduan原创 2014-05-04 16:31:04 · 2758 阅读 · 0 评论