道亦无名
王阳明曰: 立志 勤学 改过 择善
我曰: flag practice debug release
展开
-
再windows下利用CreateProcess打开记事本
如果调用进程正在模拟其他用户,则新进程将令牌用于调用进程,而不是模拟令牌。创建新进程及其主线程。新进程在调用进程的安全上下文中运行。原创 2024-06-27 17:15:28 · 416 阅读 · 0 评论 -
Windows的内核对象
任何进程都可以为现有内核对象创建新句柄 (甚至由另一个进程) 创建的一个新句柄,前提是该进程知道该对象的名称并对该对象具有安全访问权限。例如,事件句柄可以设置或等待访问 (或同时) ,文件句柄可以具有读取或写入访问权限 (或两者) ,等等。也就是说,进程必须创建 对象或打开现有对象以获取内核对象句柄。如果另一个进程知道事件名称并对该对象具有安全访问权限,则可以使用 OpenEvent 创建自己的事件对象句柄。创建器函数要么创建对象和对象句柄,要么创建新的现有对象句柄。大多数内核对象支持单个对象的多个句柄。原创 2024-06-27 16:26:17 · 87 阅读 · 0 评论 -
设备驱动程序和 PCI 电源管理
PCI 电源管理寄存器将控制设备的内部状态,例如内部时钟和电源平面。当设备启用唤醒时,PCI 驱动程序会写入 PCI-PM 寄存器,使设备能够触发 PME (ACPI 也将执行操作,请参阅下一部分)。最后,当 ACPI 确定 PCI 总线正在唤醒系统时,PCI 驱动程序会扫描 PCI 配置空间,查找哪个设备正在断言 PME,在该设备中禁用 PME,并通知驱动程序该设备。当设备驱动程序收到要求更改较低设备电源状态的 POWER IRP 时,设备驱动程序负责保存以后打开设备所需的任何专有设备上下文。原创 2024-06-18 06:44:29 · 283 阅读 · 0 评论 -
windows下面的纤程编程
在Windows下,纤程(也称为轻量级线程或协程)编程是一种并发编程模型,它允许开发者在单个线程中管理多个执行流,这些执行流可以协同工作以完成复杂的任务。纤程不同于操作系统级别的线程,它们更轻量级,因此可以创建更多的纤程而不会像线程那样占用大量的系统资源。虽然Windows的C++编译器可能还没有完全支持C++20的所有特性,但随着时间的推移,这将成为一个可行的选择。一些脚本语言(如Lua、Python等)可能内置了纤程或协程的支持,这使得在这些语言中编写纤程代码变得相对简单。原创 2024-05-17 12:52:52 · 80 阅读 · 0 评论 -
windows线程优先级
需要注意的是,线程优先级只是影响线程调度的因素之一,其他因素如线程的状态、资源争用情况等也会对线程的运行顺序产生影响。如果优先级为31的线程的时间片用完,系统会继续查看是否还有其他优先级为31的线程可以调度。只要存在优先级为31的线程,系统就不会调度优先级为0到30的线程,这可能会导致其他线程“饥饿”,即它们无法获得足够的CPU时间。例如,如果一个优先级为15的线程正在运行,而此时系统发现一个优先级更高的线程可以调度,那么高优先级线程会中断低优先级线程的执行,即使低优先级线程的时间片还未用完。原创 2024-05-05 21:56:31 · 442 阅读 · 0 评论 -
windows的线程信息获取
【代码】windows的线程信息获取。原创 2024-04-28 08:24:57 · 108 阅读 · 0 评论 -
无法解析的外部符号 XInputGetState,函数 “int __cdecl GetControllorNum(void)“解决办法
这个错误通常发生在Windows平台上,当你的项目试图使用XInput API,但是没有正确地链接XInput相关的库时。确保你的项目配置(Debug/Release)和解决方案配置(Win32/x64)匹配,因为不同的配置可能需要不同的设置。确保你的项目已经包含了XInput库。如果你的项目是跨平台的或者使用了特殊的构建系统,请确保链接器配置适用于Windows平台。如果你正在编译64位应用程序,请确保你使用的是XInput的64位版本。如果你正在使用预编译的库文件,确保库文件可用并且在项目的库目录中。原创 2024-04-27 18:31:25 · 284 阅读 · 0 评论 -
XInputGetState 函数
检索指定控制器的当前状态。原创 2024-04-27 18:30:43 · 509 阅读 · 0 评论 -
C++调用windowsapi操作串口死活打不开
有问题,换成下面的做法才能有效。具体是使用了COM3这种操作。原创 2024-04-26 14:24:09 · 421 阅读 · 0 评论 -
vsstudio 如何远程调试
你可能需要调试一个在本地生成的 Windows 桌面项目,然后在远程计算机上运行可执行文件。本主题阐释如何更改本地项目设置以在远程计算机上运行应用程序。C++ 项目会自动部署到远程计算机。您将需要手动部署 .NET Framework 可执行文件。原创 2024-04-22 08:59:13 · 288 阅读 · 0 评论 -
计算机中的合作与同步
在计算机操作系统中,文件句柄(File Handle)是一个抽象的概念,它是操作系统分配给进程用来标识和访问特定文件的唯一标识符。当你打开一个文件时,操作系统会为该文件创建一个句柄,并返回给程序使用。程序后续通过这个句柄对文件进行读写操作、控制文件指针位置等,而不是直接使用文件路径或名称。文件句柄是操作系统提供的一种机制,使得上层应用程序能够以一种安全且高效的方式与文件系统交互。原创 2024-02-21 14:18:35 · 88 阅读 · 0 评论 -
文件的句柄
在计算机操作系统中,文件句柄(File Handle)是一个抽象的概念,它是操作系统分配给进程用来标识和访问特定文件的唯一标识符。当你打开一个文件时,操作系统会为该文件创建一个句柄,并返回给程序使用。程序后续通过这个句柄对文件进行读写操作、控制文件指针位置等,而不是直接使用文件路径或名称。文件句柄是操作系统提供的一种机制,使得上层应用程序能够以一种安全且高效的方式与文件系统交互。原创 2024-02-21 14:13:03 · 239 阅读 · 0 评论 -
Windows启动一个进程CreateProcess
CreateProcess 函数创建独立于创建进程运行的新进程。原创 2024-02-05 20:15:00 · 216 阅读 · 0 评论 -
visual studio如何配置远程调试
注意:为了确保成功地连接到远程服务器并进行调试,请确保在远程服务器上安装并配置了所需的调试器(例如GDB或Visual Studio Remote Tools)。此外,请确保您的解决方案和项目已正确配置以在远程服务器上执行和调试。原创 2023-07-05 15:19:43 · 4947 阅读 · 0 评论 -
windows和linux的一些差异性
总的来说,Linux和Windows都有自己的优点和缺点。对于我个人来说,我更加喜欢在Linux上进行开发和编程工作,因为Linux提供了更加灵活和自由的工具和环境。但是,在某些情况下,我可能需要在Windows上进行一些特定的任务,例如使用特定的软件或者硬件设备。总的来说,Linux和Windows的体验差异不仅仅在于操作方式和功能上,还与社区支持、安全性、依赖关系和应用程序多样性等因素有关。总之,Linux和Windows作为两个不同的操作系统,都有自己的优势和不足。原创 2023-07-01 05:34:33 · 907 阅读 · 0 评论 -
windows系统命令行常见的命令
CMD是Windows操作系统中的命令行工具,也被称为命令提示符或控制台。它允许用户通过键入命令来执行各种操作,例如打开文件、创建目录、运行程序等等。原创 2023-05-31 08:39:11 · 549 阅读 · 0 评论 -
关于ActiveX的的问题总结
优化ActiveX,目的是为了提高时间和空间效率,而优化OLE,是为了便于终端用户的使用和集成台式系统的应用程序。利用上述特性,网络开发人员可以灵活地在网页上创建复合对象(这些对象有的用Java开发,有的用其他语言开发),与此同时,还能支持各对象之间交互通讯。为了解决由分布在INTERNET上的匿名作者编写的可执行代码所引起的地址安全性问题,Microsoft正与众多的ISVs合作,致力于研究代码签名标准,该标准为Internet软件的终端用户提供了与从软件专卖店购买软件的用户相同的责任和权限级别。原创 2023-05-28 10:00:28 · 764 阅读 · 0 评论 -
利用任务栏上的图标与用户交互
在该结构的成员中,cbSize为该结构所占的字节数,hWnd为接受该图标所发出的消息的窗口的句柄,uID 为被显示图标的ID,uFlags指明其余的几个成员(hIcon、uCallBackMessage和szTip)的值是否有效,uCallbackMessage为一个自定义的消息,当用户在该图标上作用一些鼠标动作时,将向hWnd 成员中指定的窗口发出该消息,可以定义该消息为WM_USER+100。在调用该函数之前,需要确定其参数的取值,其中之一为一个具有 NOTIFYICONDATA类型的结构。原创 2023-05-28 09:57:50 · 140 阅读 · 0 评论 -
【黑科技】如何在程序中获得其他程序的图标?
说明: 获得notepad.exe的路径正规上来说用GetWindowsDirectory函数得到, 如果是调用 win95下的画笔,应该用访问注册表的方法获得其路径,要作成一个比较考究的程序,考虑应该全面点.(1) SDK函数 SHGetFileInfo 或使用 ExtractIcon获得图标资源的 handle,(2) SDK函数 SHGetFileInfo 获得有关文件的很多信息,如大小图标,属性, 类型等.在程序窗口左上角显示 NotePad图标.原创 2023-05-28 09:21:14 · 132 阅读 · 0 评论 -
windows接口获取硬盘ID的方法
需要注意的是,这种方式获取硬盘ID并不是绝对可靠的,有些情况下可能会获取到相同的硬盘ID。此外,在Linux等其他操作系统中获取硬盘ID的方式可能会有所不同,需要根据实际情况进行调整。代码中使用了Windows API函数GetVolumeInformation来获取硬盘信息,其中serialNum为硬盘ID。原创 2023-05-11 21:00:00 · 507 阅读 · 0 评论 -
windows下使用vs工具查看dll是64位还是32位
例如查看libmysql.dll这个dll的方法:通过vs2015 x86 x64 兼容工具命令提示符进行查看:命令如下:dumpbin /headers D:\Qt\Qt5.12.12\5.12.12\msvc2017_64\bin\libmysql.dll可以看到是x64的库文件。原创 2022-04-22 16:24:37 · 2026 阅读 · 0 评论 -
windows创建虚拟通道
TestVChannelDlg.cpp代码如下:// TestVChannelDlg.cpp : 实现文件//#include "stdafx.h"#include "TestVChannel.h"#include "TestVChannelDlg.h"#include "afxdialogex.h"#ifdef _DEBUG#define new DEBUG_NEW#endif#include <wtsapi32.h>//#include <tchar.h原创 2022-03-07 23:45:00 · 3297 阅读 · 0 评论 -
windows vs2019 编译OpenSSL处理
二、准备下载以下内容1、openssl 此时最新版 https://www.openssl.org/source/openssl-1.1.1b.tar.gz2、Perl 安装http://strawberryperl.com/download/5.28.1.1/strawberry-perl-5.28.1.1-64bit.msi3、nasm 64位 安装https://www.nasm.us/pub/nasm/releasebuilds/2.14.03rc2/win64/编译安装:Perl原创 2021-12-14 20:45:00 · 594 阅读 · 1 评论 -
CLSCTX Enumeration类型说明
成员描述CLSCTX_INPROC_SERVER创建和管理此类对象的代码是一个 DLL,它与指定类上下文的函数调用者在同一进程中运行。CLSCTX_INPROC_HANDLER表示一个处理程序 dll,它与调用者在同一进程上运行。CLSCTX_LOCAL_SERVER表示服务器可执行文件,它与调用者在同一台机器上运行,但在不同的进程上。CLSCTX_INPROC_SERVER16过时的CLSCTX_REMOTE_SERVER表示服务器可执行文件,它在与调...原创 2021-12-10 10:14:53 · 632 阅读 · 0 评论 -
windows 创建快捷方式 win32API C语言
代码如下:// shortlink.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//// shortlink.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>#include <Windows.h>#include <ShObjIdl.h>#include <ShlGuid.h>HRESULT CreateLink(LPCWSTR lpszPa原创 2021-12-09 23:15:00 · 603 阅读 · 0 评论 -
一些获取当前登录Windows系统用户信息的命令
set u查看当前用户的域名, 帐户名set l查看这个账户登录的DC的名字nltest /dcname:NameOfDomain查看域中主DC的名字.原创 2021-12-08 19:10:39 · 1688 阅读 · 0 评论 -
windows编程中的CreateFile 出现5的错误解决方法
HANDLE hFile = CreateFile(KEYBOARD_LOG, GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); int error = GetLastError(); char er[100]; sprintf_s(er, "%d", error); MessageBox(NULL, er, "Tips", MB_OK);执行后如下:需要修改注册表:HKEY_L原创 2021-12-09 00:00:00 · 4539 阅读 · 1 评论 -
ShellExecuteEx函数的作用
函数如下:WINSHELLAPI BOOL WINAPI ShellExecuteEx( LPSHELLEXECUTEINFO lpExecInfo );参数:lpExecInfo指向 SHELLEXECUTEINFO 结构的长指针,该结构包含和接收有关正在执行的应用程序的信息。结构体的内部成员如下:typedef struct _SHELLEXECUTEINFOW{ DWORD cbSize; // in, required, sizeof of t原创 2021-12-06 20:00:00 · 1473 阅读 · 0 评论 -
VS2019 使用命令行编译工程sln
需要使用devenv.com这个工具具体的执行如下:test>"C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\devenv.com" build\1.sln /Build执行结果如下:在对应的路径下找到可执行文件运行原创 2021-11-22 11:57:42 · 8163 阅读 · 1 评论 -
WTSVirtualChannelOpenEx函数功能
功能说明:此 API 支持静态虚拟通道 (SVC) 和动态虚拟通道 (DVC) 创建。 如果 flags 参数为零,则其行为与 WTSVirtualChannelOpen 相同。 可以通过指定适当的标志来打开 DVC。 创建 DVC 后,您可以使用与 SVC 相同的读取、写入、查询或关闭函数。用法:HANDLE WTSVirtualChannelOpenEx( [in] DWORD SessionId, [in] LPSTR pVirtualName, [in] DWORD flags)原创 2021-10-22 03:45:00 · 597 阅读 · 0 评论 -
WTSVirtualChannelOpen函数的功能
句法HANDLE WTSVirtualChannelOpen( [in] HANDLE hServer, [in] DWORD SessionId, [in] LPSTR pVirtualName);功能:打开指定虚拟通道的服务器端的句柄。参数:hServer:该参数必须是 WTS_CURRENT_SERVER_HANDLE。SessionId:远程桌面服务会话标识符。 要指示当前会话,请指定 WTS_CURRENT_SESSION。 您可以使用 WTSEnumerateSe原创 2021-10-21 19:30:00 · 374 阅读 · 0 评论 -
ProcessIdToSessionId函数功能
头文件processthreadsapi.h说明:检索与指定进程关联的远程桌面服务会话。参数BOOL ProcessIdToSessionId( [in] DWORD dwProcessId, [out] DWORD *pSessionId);dwProcessId:指定进程标识符。 使用 GetCurrentProcessId 函数检索当前进程的进程标识符。pSessionId:指向一个变量的指针,该变量接收指定进程在其下运行的远程桌面服务会话的标识符。 要检索当前连接到控制原创 2021-10-21 10:49:13 · 5218 阅读 · 0 评论 -
windows下链接mysql数据库
不啰嗦代码 如下:// 1.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include"winsock.h"#include "mysql.h"#pragma comment(lib,"libmySQL.lib")struct conn_info{ char *host; char *use原创 2018-10-04 11:05:14 · 1101 阅读 · 0 评论 -
利用D3D抓取显存数据
如何抓取显存的数据呢?在linux下直接通过FB就好,但是在windows下面不是那么好搞的?这里看到了一些方法,还没有经过验证。microsoft 提供的D3D SDK是用来进行3D建模和利用GPU运算的一组接口的集合,D3D SDK至少有两个优点:1、提供了一种3D建模的构架,程序员可以很容易的用这种构架来建模自己的3D模型2、提供了一种GPU和CPU并行运算的原创 2017-01-14 17:40:40 · 7328 阅读 · 7 评论 -
简单的D3D使用
初始化D3D的方法如下:代码如下:#pragma comment (lib,"d3d11.lib")#pragma comment (lib,"d3dx11.lib")#pragma comment (lib,"winmm.lib")#include #include #include #include HINSTANCE g_hInstance = NULL;H原创 2017-01-13 10:30:29 · 4015 阅读 · 0 评论 -
windows 窗口消息
纯干货,代码如下:#include <windows.h>#include <stdio.h>LRESULT CALLBACK WinFirstProc( HWND hwnd, // handle to window UINT uMsg, // message identifier WPARAM wParam, // first message parameter原创 2017-03-09 22:37:59 · 2602 阅读 · 0 评论 -
GDI的色彩空间转换
源头微软官方文档: https://msdn.microsoft.com/en-us/library/ff566496/表格 对应的中文 在进行图像处理的时候用到比较多?索性自己翻译一下 并且可以自己动手计算。原创 2017-07-16 21:49:52 · 3524 阅读 · 0 评论 -
面向对象的使用 C++
代码如下:#include <iostream>using namespace std;class Box{ public: double length; // 长度 double breadth; // 宽度 double height; // 高度 double volume; // 体积};i...原创 2018-04-04 17:02:07 · 1515 阅读 · 0 评论 -
windows下获取鼠标的信息
windows下获取鼠标的信息发现很多东西在网上都比较零散。于是自己进行了一些整理。 比如这期间看了msdn上的一些english的文档。发现很多东西还是要在官网上去看,毕竟是第一手资料。 比如我这次需要用WM_MOUSEWHEEL message 直接去msdn上搜 https://msdn.microsoft.com/en-us/library/windows/desktop/ms64...原创 2018-04-04 18:36:00 · 5441 阅读 · 0 评论 -
opencv 学习遇到的问题
原创 2018-05-08 20:13:52 · 9300 阅读 · 2 评论