![](https://img-blog.csdnimg.cn/20190918135101160.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Windows开发
文章平均质量分 63
Windows环境下的C++开发
古道青阳
路漫漫其修远兮,吾将上下而求索。
展开
-
浅谈使用select函数实现IO多路复用
浅谈使用select函数实现IO多路复用原创 2022-12-12 16:30:30 · 280 阅读 · 1 评论 -
win获取正在使用的网卡信息
win获取正在使用的网卡信息原创 2022-07-22 16:09:06 · 1091 阅读 · 0 评论 -
win获取网卡列表信息的三种方式
win获取网卡列表信息的三种方式原创 2022-07-22 15:52:32 · 1144 阅读 · 0 评论 -
基于WDF驱动模型使用WFP框架进行网络层数据修改
基于WDF驱动模型使用WFP框架进行网络层数据修改原创 2022-07-20 15:41:51 · 2685 阅读 · 9 评论 -
批处理判断操作系统的文件系统类型
一、通过操作系统查看盘符的文件系统类型右键盘符-->属性-->常规,可以看到有NTFS和FAT两种类型二、通过命令行查看盘符的文件系统类型fsutil fsinfo ntfsinfo %SystemDrive%命令可以查看系统盘的文件系统信息,也可以将%SystemDriver%换成想要查看的位置。 fsutil 是可用于执行多种与 FAT 和 NTFS 文件系统相关的任务(例如管理重解析点、管理稀疏文件、卸载卷或扩展卷...原创 2022-05-30 18:28:44 · 805 阅读 · 0 评论 -
批处理设置系统的写入调试信息
一、通过操作系统界面查看系统的写入调试信息右键此电脑-->属性-->高级系统设置-->设置(启动和故障恢复)-->写入调试信息。可以看到写入调试信息包括(无)、小内存转储(256KB)、核心内存转储、完全内存转储、自动内存转储、活动内存转储。完整内存转储:完整内存转储太大,一般是物理内存大小或多一些,包括了用户进程页面,2GB的物理内存转储出来至少要2GB的磁盘空间(还有文件头信息)。...原创 2022-05-30 18:14:54 · 2304 阅读 · 0 评论 -
使用VS2010编译tdi源码(驱动层)
tdi源码下载tdifw-1.4.4解压,在目录src下找到drv。drv就是tdi的驱动层程序源码,该应用程序并没有VC的工程,需要自己创建。创建步骤如下:一、创建vs工程1、打开vs2010-->文件-->新建-->从现有代码创建项目2、在要创建什么类型的项目,选择Visual C++,点击下一步...原创 2022-05-28 22:38:07 · 568 阅读 · 0 评论 -
使用VS2010编译tdi源码(应用层)
tdi源码下载tdifw-1.4.4解压,在目录src下找到svc。svc就是tdi的应用层程序源代码,该应用程序并没有VC的工程,需要自己创建。创建步骤如下:一、创建vs工程 1、打开vs2010-->文件-->新建-->从现有代码创建项目 2、在要创建什么类型的项目,选择Visual C++,点击下一步 ...原创 2022-05-28 22:14:00 · 628 阅读 · 0 评论 -
简单的QT多线程开发
创建一个线程类,在主窗口中进行调用。VS中一个Windows的API即可,QT一定要自己创建类,真是麻烦。线程类头文件:#ifndef TESTTHREAD_H#define TESTTHREAD_H#include <QThread>class MyThread:public QThread{ Q_OBJECTpublic: explicit MyThread(); ~MyThread();signals: void MsgSignal(c原创 2022-04-03 18:06:04 · 341 阅读 · 0 评论 -
QT多进程开发,管道通信
一、实现多进程方式 通过命令行传参,进程启动时,不同的命令行参数执行不同的逻辑。 代码如下:int main(int argc, char *argv[]){ QStringList argumentsList; { QApplication a(argc, argv); argumentsList = QCoreApplication::arguments(); } if(argumentsLis...原创 2022-04-03 17:55:21 · 5811 阅读 · 1 评论 -
Windbg Preview与虚拟机win10系统实现双机调试
在驱动开发之调试内核模块中实现了用windbg与虚拟机xp系统下的双机调试,接下来说下怎么使用windbg preview与虚拟机win10系统进行双机调试。主要在三个方面进行配置:win10系统配置,虚拟机配置,windbg preview配置一、win10系统配置,1、用管理员权限运行命令行 2、设置端口bcdedit/dbg...原创 2021-12-30 10:25:00 · 1634 阅读 · 0 评论 -
动态库显式链接为什么要加extern “C“
今天写了一个exe链接dll的测试程序,隐式链接的时候没有问题,显式链接的时候获取的函数指针为空。之所以会出现这个问题,是因为在导出接口的时候没有加exetrn "C"导致的。 在C++中使用extern "C"会告诉C++编译器在编译时按照C语言进行编译,不进行换名,方便C语言去调用。那么这个换名该怎么理解呢?这里就要说下C++语法中函数重载的概念。...原创 2021-12-04 17:35:40 · 885 阅读 · 0 评论 -
windows服务创建带界面的窗口进程(穿透Session 0 隔离)
Windows下服务直接启动窗口程序时,在任务管理器中可以看到窗口程序正在运行,但是桌面上并没有显示出窗口。这是因为在Windows XP、Windows Server 2003 或早期Windows 系统时代,当第一个用户登录系统后服务和应用程序是在同一个Session 中运行的,也就是Session 0。但是这种运行方式提高了系统安全风险,因为服务是通过提升了用户权限运行的,而应用程序往往是那些不具备管理员身份的普通用户运行的,其中的危险显而易见。...原创 2021-11-26 14:20:25 · 3694 阅读 · 4 评论 -
MFC单例机制下重复启动时,继续运行上次的实例
网上查找MFC单例运行资料时,都是在说再次运行实例时提示已经有实例在运行了,而不是继续运行已经在运行的实例。一旦上个实例在隐藏状态下,就无法再打开了。本文主要介绍实例重复运行时,怎么再次调起上次的实例,并且不破坏当时的运行环境。 主要功能分为两个模块: 1、单例运行的实现 2、重复运行实例时激活上个实例,并且保持其运行状态 一、单例运行的实现 单例运行很容易实现,网上也有很多的代码示例,下面贴上本人...原创 2021-11-22 10:36:37 · 418 阅读 · 0 评论 -
Openssl生成pem格式的数字证书(适配win2000)
在Openssl库生成数字证书总结(适配win2000)一文中我们已经实现了crt后缀证书的生成,现在说一下怎么生成pem后缀的证书。大体思路很简单,就是使用OpenSSL生成一个CA根证书,并用这个根证书颁发两个子证书server和client。下面就来说一下实现的具体步骤: 一、命令行进入openssl的out32dll路径下,新建一个private文件夹用于放置我们生成的各种证书文件。 二、生成根证书 1、生成根证书私钥 -- ...原创 2021-11-12 17:53:33 · 10891 阅读 · 0 评论 -
win2000环境下使用openssl-0.9.6i实现通信加密
在Openssl库生成数字证书总结(适配win2000)一文中,我们已经实现了数字证书的生成,接下来就具体说下win2000环境下怎么使用Openssl库实现通信加密。 首先来说下服务端的代码实现,主要有以下几个步骤: 初始化ssl库-->添加验证-->载入数字证书-->载入用户私钥-->校验私钥-->添加加密算法-->创建tcp网络连接-->建立ssl连接-->数据收发-->关闭ssl连接--&g...原创 2021-11-11 17:02:02 · 1649 阅读 · 0 评论 -
Openssl库生成数字证书总结(适配win2000)
在Openssl适配win2000系统总结一文中,我们已经实现了Openssl库在win2000上的适配。下面就来说一下怎么使用编译好的Openssl库来生成数字证书。 首先需要使用命令行进入Openssl生成库文件的目录out32dll,然后执行以下操作: 一、服务端 1、创建私钥,密码设置为123456openssl genrsa -des3 -out server.key 1024 ...原创 2021-11-10 17:35:05 · 1326 阅读 · 0 评论 -
Openssl适配win2000系统总结
花了两天时间,总算把Openssl在win2000上的适配搞定了。在此做一下总结。首先是需要的的编译环境和openssl版本。我用的是vc6.0编译器,perl用的是5.8.8..2版本,openssl为0.9.6i版本。下载链接奉上:https://download.csdn.net/download/sunkaijie123/37380268 接下来具体说一下编译步骤及遇到的坑: 一、安装vc6.0,安装好之后将安装路径下的VC98\Bin添加到环境变...原创 2021-11-05 21:29:01 · 573 阅读 · 0 评论 -
操作系统日志的写入
对于没有界面的后台服务而言,向操作系统写入日志是一种分析服务运行情况的重要方式。下面就来看看怎么向操作系统写入日志,上代码:void LogEvent(LPCTSTR pFormat, ...){ try { TCHAR chMsg[256]; HANDLE hEventSource; LPTSTR lpszStrings[1]; va_list pArg; va_start(pArg, pFormat); _vstprintf_s(chMsg...原创 2021-11-03 18:32:22 · 604 阅读 · 0 评论 -
Windows服务开发
完整的Windows服务开发主要分为三个模块:服务创建模块,服务管理模块,业务模块。首先来说服务创建模块,上代码: //打开服务控制管理器 SC_HANDLE hSCM = ::OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS); if (hSCM == NULL) { return FALSE; } // Get the executable file path TCHAR szFilePath[MA...原创 2021-11-03 17:31:08 · 1676 阅读 · 0 评论