1 Star 0 Fork 4

hira / CPPHelper

forked from 初雨团队 / CPPHelper 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT
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,没什么功能,通用层数据流交换使用,可以无视
The MIT License (MIT) Copyright (c) 2016 Chuyu-Team Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

C++基础辅助类库,比如异步进行-Thread,安全句柄-CHandle,资源守卫-Guard,XML解析-rapidxml,以及其他注册表、文件基础操作。用于更加高效、安全的进行C++开发。温馨提示:至少需要支持C++0x标准的编译器。 展开 收起
C++
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
C++
1
https://gitee.com/shen_hua_shan/CPPHelper.git
git@gitee.com:shen_hua_shan/CPPHelper.git
shen_hua_shan
CPPHelper
CPPHelper
master

搜索帮助

14c37bed 8189591 565d56ea 8189591