1.获取GUID
const char* newGUID()
{
static char buf[64] = { 0 };
GUID guid;
if (S_OK == ::CoCreateGuid(&guid))
{
_snprintf(buf, sizeof(buf)
, "%08X-%04X-%04x-%02X%02X-%02X%02X%02X%02X%02X%02X"
, guid.Data1
, guid.Data2
, guid.Data3
, guid.Data4[0], guid.Data4[1]
, guid.Data4[2], guid.Data4[3], guid.Data4[4], guid.Data4[5]
, guid.Data4[6], guid.Data4[7]
);
}
return (const char*)buf;
}
2.获取当前时间戳
std::string getRawTime() {
SYSTEMTIME sysTime;
GetLocalTime(&sysTime);
time_t unixTime;
time(&unixTime);
std::string rawTime = __String::createWithFormat("%ld%ld", unixTime, sysTime.wMilliseconds)->getCString();//输出UNIX时间戳字符串
rawTime.erase(10);
return rawTime;
}
3.获取文件时间戳
time_t tt;
struct tm *tst;
struct stat st;
stat("D:\\simple.txt", &st);//必须使用两个'\\'
tt = st.st_ctime;
log("tt=%ld\n", tt);
4.压缩文件
zip库下载链接 http://download.csdn.net/detail/chinawallace/9584122
HZIP hz = CreateZip(L"C:\\simple1.zip",0);
ZipAdd(hz, L"simple.txt", L"C:\\simple.txt");
CloseZip(hz);
5.获取网络状态
#include
#pragma comment(lib, "Sensapi.lib")
DWORD flags;
IsNetworkAlive(&flags);
6.cocos2dx获取本地数据流
ssize_t size = 0;
unsigned char* titlech = FileUtils::getInstance()->getFileData("D:/test.png", "r", &size);
7.cocos2dx加载网络图片数据流
const char* pSrc = "网络图片数据流";
unsigned char *pData = (unsigned char*)(const_cast<char*>(pSrc));
auto pDataLen = strlen((const char*)pData);
std::string load_str;
load_str = std::string((const char*)pData, pDataLen);
int len = 0;
unsigned char *buffer1;
len = base64Decode((unsigned char*)load_str.c_str(), (unsigned int)load_str.length(), &buffer1);
Image* img = new Image();
bool ok = img->initWithImageData(buffer1, len);
unsigned char *pngData = img->getData();
CCTexture2D *texture = new CCTexture2D();
texture->initWithData(pngData, img->getDataLen(), kCCTexture2DPixelFormat_RGB888,
img->getWidth(), img->getHeight(), CCSizeMake((float)img->getWidth(), (float)img->getHeight()));
sprite->initWithTexture(texture);
8.cocos2dx生成json
#include "json/document.h"
#include "json/writer.h"
#include "json/stringbuffer.h"
#include
#include "data/HttpConstant.h"
using namespace rapidjson;
//生成json
rapidjson::Document m_writedoc;
m_writedoc.SetObject();
rapidjson::Document::AllocatorType& allocator = m_writedoc.GetAllocator();
rapidjson::Value object(rapidjson::kObjectType);
m_writedoc.RemoveAllMembers();
rapidjson::Value gradeId(rapidjson::kStringType);
gradeId.SetString("45014d74cce3469b86ace39cf2025de6", allocator);
object.AddMember("gradeId", gradeId, allocator);
rapidjson::Value validation(rapidjson::kStringType);
validation.SetString("123", allocator);
object.AddMember("validation", validation, allocator);
StringBuffer buffer;
rapidjson::Writer writer(buffer);
object.Accept(writer);
std::string strSendMessage = buffer.GetString();
//解析json
rapidjson::Document writedoc;
writedoc.SetObject();
rapidjson::Value &value = writedoc.Parse(str.c_str());
bool result = value["result"].GetBool();
9.cocos2dx的Http请求
#include "network/HttpClient.h"
using namespace network;
HttpRequest* request = new (std::nothrow) HttpRequest();
request->setUrl("http://192.168.1.7:8080/lesiea/game/drumsData");
request->setRequestType(HttpRequest::Type::POST);
request->setResponseCallback(CC_CALLBACK_2(CourseSelectClassA1Layer::onHttpRequestCompleted, this));
std::vector<std::string> headers;
headers.push_back("Content-Type: application/json; charset=utf-8");
request->setHeaders(headers);
request->setTag("test");
HttpClient::getInstance()->send(request);
request->release();
void onHttpRequestCompleted(cocos2d::network::HttpClient *sender, cocos2d::network::HttpResponse *response)
{
if (!response)
{
return;
}
long statusCode = response->getResponseCode();
log("response code: %ld", statusCode);
if (statusCode != 200)
{
log("response failed");
log("error buffer: %s", response->getErrorBuffer());
auto layer = TipLayer::create("获取班级二维码失败");
this->addChild(layer, 100, 100);
return;
}
else
{
std::string tag = response->getHttpRequest()->getTag();
std::vector<char> *buffer = response->getResponseData();
std::string str;
for (unsigned int i = 0; i < buffer->size(); i++)
{
str += (*buffer)[i];
}
log("%s", str);
}
}
10.随机列表数据
// random generator function:
ptrdiff_t myrandom(ptrdiff_t i) { return rand() % i; }
// pointer object to it:
ptrdiff_t(*p_myrandom)(ptrdiff_t) = myrandom;
srand(unsigned(time(NULL)));////s随机数种子
// using myrandom:
random_shuffle(m_userInfoVector.begin(), m_userInfoVector.end(), p_myrandom);
11.获取网络连接状态
#include
#pragma comment(lib, "Sensapi.lib")
DWORD flags;//上网方式
BOOL m_bOnline=TRUE;//是否在线
m_bOnline=IsNetworkAlive(&flags);
if(m_bOnline)//在线
{
if ((flags & NETWORK_ALIVE_LAN) ==NETWORK_ALIVE_LAN)
{
cout<<"在线:NETWORK_ALIVE_LAN\n";
}
if ((flags & NETWORK_ALIVE_WAN) ==NETWORK_ALIVE_WAN)
{
cout<<"在线:NETWORK_ALIVE_WAN\n";
}
if ((flags & NETWORK_ALIVE_AOL) ==NETWORK_ALIVE_AOL)
{
cout<<"在线:NETWORK_ALIVE_AOL\n";
}
}
else
cout<<"不在线\n";
}
12.列表随机排序
// random generator function:
ptrdiff_t myrandom(ptrdiff_t i) { return rand() % i; }
// pointer object to it:
ptrdiff_t(*p_myrandom)(ptrdiff_t) = myrandom;
srand(unsigned(time(NULL)));////s随机数种子
// using myrandom:
random_shuffle(m_userInfoVector.begin(), m_userInfoVector.end(), p_myrandom);
for (int i = 0; i < m_userInfoVector.size(); i++)
{
m_userInfoVector.at(i)->setIndex(i+1);
m_pHeadVector.at(i)->initWithFile(m_userInfoVector.at(i)->getUserIcon());
}
13.c++分割子串
std::string tag = "save12";
std::string str = "save";
if (strstr(tag.c_str(), str.c_str()))
{
std::string s = tag.substr(4);
}
14.读取本地数据流
ssize_t size = 0;
unsigned char* titlech = FileUtils::getInstance()->getFileData(path, "rb+", &size);
auto pDataLen = strlen((const char*)titlech);
std::string load_str;
load_str = std::string((const char*)titlech, pDataLen);
log("data=%s", load_str.c_str());
std::string load_str;
auto data = FileUtils::getInstance()->getDataFromFile(path);
unsigned char* titlech = data.getBytes();
auto pDataLen = strlen((const char*)titlech);
load_str = std::string((const char*)titlech, pDataLen);
log("data=%s", load_str.c_str());
fstream fsIn;
char s[65535];
fsIn.open(path.c_str(), ios::in | ios::binary);
fsIn.read(s, 65535);
fsIn.close();
char* c = s;
std::string str = c;
log("%s", str.c_str());