CPPHelper 是一个C++基础辅助类库,目的在于更加高效、安全的进行开发。
使用方法:
1:将CPPHelper复制到工程目录
比如D:\Visual Studio 2015\Projects\MySln\CPPHelper (MySln是我需要编译的工程)
2:在 VC++目录 -- 包含路径 添加 $(SolutionDir)CPPHelper\
3:在 VC++目录 -- 库目录 添加 $(SolutionDir)CPPHelper\$(PlatformShortName)\
4:在stdafx.h 中添加 #include <BaseFunction.h>
5:在stdafx.cpp 中添加 #include <BaseFunction.cpp>
至此,基础类库已经可以正常使用,另外其他Thread等类,请自行在使用时 include
温馨提示:编译器必须支持C++ 0X,并且编码需要设置宽字符!!!!!!
目前该类库有以下几个功能:
///////////////////////////////////////////////rapidxml//////////////////////////////////////////////////////
这是我修改后的一个rapidxml库,所有规范与原版的rapidxml一样,但是此版本完整支持UTF8以及UTF16。并且在执行print时提供了更佳性能。
rapidxml::XMLDocument Document;
//从一个文件路径打开xml,自动进行编码判断
XMLCreateXMLDocumentByFile(L"D:\test.xml",&Document);
//从二进制数据打开XML,自动进行编码判断
XMLCreateXMLDocumentByData(pBinary,cbBinary,&Document);
//从字符串打开XML
XMLCreateXMLDocumentByString(L"<Root></Root>",&Document)
//打开Root/Files节点
auto pFiles= XMLOpenNote(&Document,L"Root/Files");
<Root>
<Files/>
</Root>
……
///////////////////////////////////////////MsIsoReader////////////////////////////////////////////////////////
这是一个微软的一个ISO读取库,原本它是C#版,我将其移植到了C++上,一般用用过的去。Dism++的直接释放ISO功能也是此库支持
////////////////////////////////////////////Thread类////////////////////////////////////////////////////////
Thread:
异步类,用于执行异步任务。
头文件:Thread.h
使用方法:
Thread([]()
{
/*你需要异步执行的命令,Thread类自动会完成句柄释放。
这里是一个Lambda表达式,你可以参考Lambda表达式的使用。
*/
});
Task:
异步函数,用于执行异步任务,但是其线程创建于线程池,减少程序创建销毁线程的开销。
头文件:Thread.h
使用方法:
Task([]()
{
/*你需要异步执行的命令。
这里是一个Lambda表达式,你可以参考Lambda表达式的使用。
*/
});
ThreadPool:
制定线程池,用于执行大批量任务,合适计算密集型并行计算。
头文件:Thread.h
使用方法:
ThreadPool WorkPool;
//最大十个线程并发,默认值500(微软规定的)
WorkPool.SetThreadMaximum(10);
int Datas[100];
WorkPool.For(Data,100,[](int& Data)
{
//10线程并发输出Datas中的内容
wprinf(L"%d\r\n",Data);
});
////////////////////////////////////////////hanlde智能句柄////////////////////////////////////////////////
hanlde:
智能句柄,用于自动关闭各种句柄。
头文件:handle.h
使用方法:
CHKEY - 注册表智能句柄
//自动初始化为NULL
CHKEY Test;
RegOpenKey(HKEY_LOCAL_MACHINE,L"SOFTWARE",&Test);
//你无需特意关闭Test,Test在析构时自动关闭HKEY
CHFile - 文件智能句柄
//自动初始化为INVALID_HANDLE_VALUE
CHFile Test;
Test=CreateFile(……);
//你无需特意关闭Test,Test在析构时自动关闭HANDLE
等等……
/////////////////////////////////////////////////资源守卫///////////////////////////////////////////////
头文件:Guard.h
int Test()
{
auto pData=new int;
//RunOnExit中的代码在退出时执行
RunOnExit([pData]()
{
//Test函数结束时,将自动执行此代码
delete pData;
});
//RunOnCrash中的会在程序崩溃时执行
RunOnCrash([]()
{
MessageBox(NULL,L"我的程序崩溃啦",L"Sorry",0);
});
return 0;
}
//////////////////////////////////////////////其他/////////////////////////////////////////
1:ComHelper用于辅助编写com接口
2:CabinetHelper用于打开以及创建cab文件
3:DiskHelper用于修改磁盘MBR
4:FileHelper提供基础文件操作,比如文件删除、属性修改、大小计算
5:IniHelper,提供基础的ini读写
6:RegHelper,提供基础的注册表操作
7:StringHelper,提供基础的字符串操作
8:VirtDiskHelper,此库已经弃用,没啥功能
9:WinInetHelper,提供网络下载
10:WinnlsHelper,没什么功能,可以无视
11:StreamEx,没什么功能,通用层数据流交换使用,可以无视
没有合适的资源?快使用搜索试试~ 我知道了~
C++基础辅助类库,含Thread,CHandle,Guard,rapidxml
需积分: 10 2 下载量 47 浏览量
2021-01-02
11:58:46
上传
评论
收藏 647KB GZ 举报
温馨提示
共98个文件
h:73个
cpp:10个
hpp:4个
C++基础辅助类库,比如异步进行-Thread,安全句柄-CHandle,资源守卫-Guard,XML解析-rapidxml,以及其他注册表、文件基础操作。用于更加高效、安全的进行C++开发。温馨提示:至少需要支持C++0x标准的编译器。
资源详情
资源评论
资源推荐
收起资源包目录
422.CPPHelper__Chuyu-Team.tar.gz (98个子文件)
422.CPPHelper__Chuyu-Team
km.h 133KB
Base.cpp 100KB
Buffer.h 310B
CPPHelper.vcxitems 6KB
WinnlsHelper.h 297B
DoubleBuffer.h 966B
CPPHelper.vcxitems.filters 10KB
XMLHelper.h 14KB
unzip.cpp 145KB
Base.h 11KB
ListViewCtrlEdit.h 7KB
DialogCTL.h 1KB
CriticalSectionHelper.h 1KB
StreamEx.cpp 11KB
RegHelper.h 8KB
x86
ntdll.lib 457KB
WofHelper.h 927B
WofHelper.cpp 2KB
FileHelper.h 6KB
rapidxml
rapidxml_print.hpp 13KB
license.txt 3KB
rapidxml_iterators.hpp 4KB
rapidxml_utils.hpp 1KB
manual.html 111KB
rapidxml.hpp 122KB
MsIsoReader
ImageReader.h 25KB
Udf
UdfString.h 2KB
UdfFileInformation.h 1KB
UdfFileSet.h 175B
LogicalBlockAddress.h 394B
Enumerations.h 1KB
LongAllocationDescriptor.h 672B
IcbTag.h 481B
UdfRecord.h 2KB
ShortAllocationDescriptor.h 351B
LogicalVolume.h 413B
UdfFileExtent.h 357B
VolumeTag.h 965B
FileExtent.h 464B
UdfTime.h 437B
Partition.h 770B
ImageRecord.h 2KB
BaseFunction.cpp 657B
ISOReader.h 453B
Guard.h 2KB
VCCompatible.h 548B
VirtDiskHelper.h 2KB
FileFindHelper.h 1KB
WinInetHelper.h 6KB
ComHelper.h 4KB
MFC
TreeCtrlEx.h 1019B
Dialog2.h 6KB
TreeCtrlEx.cpp 6KB
handle.h 2KB
CPPHelper.sln 422B
WTL
atlprint.h 29KB
atlgdi.h 99KB
atlfind.h 28KB
atltheme.h 36KB
atlcrack.h 61KB
atlwince.h 82KB
atlwinx.h 14KB
atluser.h 39KB
atlctrls.h 271KB
atlctrlw.h 120KB
atldwm.h 12KB
atlapp.h 60KB
atlsplit.h 30KB
atlframe.h 107KB
atldlgs.h 178KB
atlscrl.h 60KB
atlmisc.h 87KB
atlddx.h 17KB
atlribbon.h 90KB
atlres.h 10KB
atlresce.h 3KB
atlctrlx.h 132KB
WinInetHelper.cpp 10KB
RegHelper.cpp 12KB
x64
ntdll.lib 428KB
CabinetHelper.h 11KB
unzip.h 10KB
TreeViewCtrl2.h 9KB
StringI.h 1KB
FileDialog2.h 8KB
Thread.h 4KB
StreamEx.h 2KB
.gitignore 4KB
WinRT.h 4KB
DiskHelper.h 274B
FileHelper.cpp 29KB
StringHelper.h 2KB
.gitattributes 3KB
LICENSE.txt 1KB
BaseFunction.h 401B
ReadMe.txt 4KB
IniHelper.cpp 2KB
IniHelper.h 1KB
共 98 条
- 1
AI研究院
- 粉丝: 71
- 资源: 702
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0