Windows Api 封装 C++ 库

WinLib是一个C++库,它封装了Windows API,涵盖了操作系统、网络、进程、文件、内存和字符串等方面的常见功能。使用此库可以简化Windows开发工作,减少对MSDN的依赖和自定义轮子的创建,帮助开发者更高效地完成任务,避免常见的编程问题,提高工作效率。
摘要由CSDN通过智能技术生成

库地址:

GitHub - liwengithub/WinLib: Windows Api Enclosing C++ Library

还在天天翻MSDN看API参数吗,还在无数次的造轮子吗,还在一个项目里面看见各种版本的封装库吗,还在天天和同事撕逼吗,还在加班调试自己写的BUG吗。

有了这个库,一切烦恼皆没有,6点下班。

包含操作系统相关、网络、进程、文件、内存、字符串等常见winapi封装。

一些代码演示:

———————————————————————————————————————————————

#include "WinLibOs.h"

//系统是否是X64
WinLib::OsIs64()

//当前用户名
tcout << _T("CurrentUserName:") << WinLib::OsCurrentUserName() << std::endl;

//当前机器名
tcout << _T("PcName:") << WinLib::OsPcName() << std::endl;

//CPU核心数
tcout << _T("CPUCount:") << WinLib::OsGetCPUCount() << std::endl;

//内存大小
tcout << _T("MemoryMb:") << WinLib::OsGetMemoryMb() << std::endl;

//屏幕分辨率
WinLib::OsGetScreenResolution(x, y);

//枚举磁盘
std::vector<tstring> LogicalDriveNames;
WinLib::OsEnumLogicalDriveName(LogicalDriveNames);

//关闭系统重定向功能 让X86进程可以读写C:\Windows\System32
PVOID OldValue = 0;
//WinLib::OsDisableFileRedirection(OldValue);
//WinLib::OsEnableFileRedirection(OldValue);

//系统版本号
DWORD MajorVer, MinorVer, BuildNumber;
WinLib::OsVersionNumber(MajorVer, MinorVer, BuildNumber);
std::string OsVer = "unknown";
if (MajorVer == 10)
{
	OsVer = "Windows 10";
	if (BuildNumber >= 22000)
	{
		OsVer = "Windows 11";
	}
}
else if (MajorVer == 6 && MinorVer == 3)
{
	OsVer = "Windows 8.1";
}
//...
std::cout << "OsVer:" << OsVer << std::endl;
———————————————————————————————————————————————————————

#include "WinLibSe.h"

//设置文件所有者
WinLib::SeTakeFileOwnership(WinLib::OsCurrentUserName(), _T("d:\\test.exe"));

//获取文件权限
WinLib::SeSetFileAllowAccess(WinLib::OsCurrentUserName(), _T("d:\\test.exe"));
———————————————————————————————————————————————————————

#include "WinLibFs.h"

//获取文件大小
tstring FilePath = WinLib::OsGetWindowsDirectory() + _T("\\explorer.exe");
DWORD Size = WinLib::FsGetFileSize(FilePath);
tcout << FilePath << _T(" Size:") << Size << std::endl;

//获取文件大小 超过4GB
DWORD64 Size2 = WinLib::FsGetFileSize64(FilePath);
tcout << FilePath << _T(" Size:") << Size2 << std::endl;		

//文件是否存在
WinLib::FsIsFile(_T("c:\\windows\\notepad.exe"));

//目录是否存在
WinLib::FsIsDirectory(_T("c:\\windows"));

//写文件
WinLib::FsWriteFileData(_T("d:\\1.txt"), "txt&#
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值