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++基础辅助类库.zip
共98个文件
h:73个
cpp:10个
hpp:4个
需积分: 5 0 下载量 9 浏览量
2024-04-30
20:26:49
上传
评论
收藏 672KB ZIP 举报
温馨提示
比如异步进行-Thread,安全句柄-CHandle,资源守卫-Guard,XML解析-rapidxml,以及其他注册表、文件基础操作。用于更加高效、安全的进行C++开发。温馨提示:至少需要支持C++0x标准的编译器。
资源推荐
资源详情
资源评论
收起资源包目录
C++基础辅助类库,比如异步进行-Thread,安全句柄-CHandle,资源守卫-Guard,XML解析-rapidxml,以及其他注册表、文件基础操作。用于更加高效、安全的进行C++开发。温馨提示:至少需要支持C++0x标准的编译器。.zip (98个子文件)
SJT-code
MsIsoReader
Udf
LongAllocationDescriptor.h 634B
UdfFileExtent.h 341B
LogicalVolume.h 388B
FileExtent.h 432B
Partition.h 718B
UdfRecord.h 2KB
IcbTag.h 453B
ShortAllocationDescriptor.h 333B
UdfString.h 2KB
UdfTime.h 413B
LogicalBlockAddress.h 373B
UdfFileInformation.h 1KB
UdfFileSet.h 165B
Enumerations.h 1KB
VolumeTag.h 920B
ImageRecord.h 1KB
ImageReader.h 24KB
RegHelper.h 7KB
CPPHelper.vcxitems 6KB
handle.h 2KB
unzip.h 10KB
RegHelper.cpp 11KB
VirtDiskHelper.h 2KB
Thread.h 4KB
FileHelper.cpp 28KB
.gitattributes 2KB
LICENSE.txt 1KB
ListViewCtrlEdit.h 7KB
XMLHelper.h 14KB
FileHelper.h 6KB
WinInetHelper.h 6KB
DiskHelper.h 261B
CPPHelper.vcxitems.filters 9KB
DialogCTL.h 1KB
IniHelper.cpp 2KB
StringI.h 1KB
FileFindHelper.h 1KB
FileDialog2.h 7KB
WofHelper.h 876B
x64
ntdll.lib 428KB
CPPHelper.sln 410B
ReadMe.txt 4KB
rapidxml
rapidxml_utils.hpp 1KB
rapidxml_print.hpp 13KB
manual.html 110KB
rapidxml_iterators.hpp 4KB
rapidxml.hpp 119KB
license.txt 3KB
WTL
atldwm.h 12KB
atlframe.h 103KB
atlmisc.h 83KB
atlctrlx.h 128KB
atlfind.h 27KB
atlres.h 10KB
atlapp.h 58KB
atlwinx.h 14KB
atlribbon.h 87KB
atlsplit.h 29KB
atltheme.h 35KB
atlgdi.h 95KB
atlddx.h 16KB
atlctrls.h 261KB
atldlgs.h 172KB
atlcrack.h 59KB
atlscrl.h 58KB
atlprint.h 28KB
atluser.h 37KB
atlwince.h 79KB
atlresce.h 2KB
atlctrlw.h 116KB
km.h 128KB
CabinetHelper.h 11KB
CriticalSectionHelper.h 1KB
ComHelper.h 4KB
WinRT.h 4KB
StreamEx.cpp 11KB
StringHelper.h 2KB
Buffer.h 295B
WinInetHelper.cpp 10KB
.gitignore 4KB
TreeViewCtrl2.h 9KB
StreamEx.h 2KB
VCCompatible.h 519B
Base.h 11KB
Guard.h 2KB
Base.cpp 97KB
MFC
TreeCtrlEx.cpp 5KB
Dialog2.h 5KB
TreeCtrlEx.h 977B
DoubleBuffer.h 913B
IniHelper.h 1KB
WinnlsHelper.h 282B
BaseFunction.cpp 628B
x86
ntdll.lib 457KB
ISOReader.h 435B
WofHelper.cpp 2KB
BaseFunction.h 382B
unzip.cpp 141KB
共 98 条
- 1
资源评论
JJJ69
- 粉丝: 6222
- 资源: 5780
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功