⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uuidgen.cpp

📁 Password Safe Password Safe is a password database utility. Users can keep their passwords securely
💻 CPP
字号:
// UUIDGen.cpp// Silly class for generating UUIDs// Each instance has its own unique value, // which can be accessed as an array of bytes or as a human-readable// ASCII string.//#include "UUIDGen.h"#include "util.h" /* for trashMemory() */#include <stdio.h> /* for sprintf() */#include <assert.h>#ifdef _WIN32#include <Winsock2.h> /* for htonl, htons */#else/* currently here only for Cygwin test harness */#include <asm/byteorder.h> /* for htonl, htons */#endifCUUIDGen::CUUIDGen(){  UuidCreate(&uuid);}CUUIDGen::CUUIDGen(const uuid_array_t &uuid_array){  unsigned long *p0 = (unsigned long *)uuid_array;  uuid.Data1 = htonl(*p0);  unsigned short *p1 = (unsigned short *)&uuid_array[4];  uuid.Data2 = htons(*p1);  unsigned short *p2 = (unsigned short *)&uuid_array[6];  uuid.Data3 = htons(*p2);  for (int i = 0; i < 8; i++)    uuid.Data4[i] = uuid_array[i + 8];}CUUIDGen::~CUUIDGen(){  trashMemory((unsigned char *)&uuid, sizeof(uuid));}void CUUIDGen::GetUUID(uuid_array_t &uuid_array) const{  unsigned long *p0 = (unsigned long *)uuid_array;  *p0 = htonl(uuid.Data1);  unsigned short *p1 = (unsigned short *)&uuid_array[4];  *p1 = htons(uuid.Data2);  unsigned short *p2 = (unsigned short *)&uuid_array[6];  *p2 = htons(uuid.Data3);  for (int i = 0; i < 8; i++)    uuid_array[i + 8] = uuid.Data4[i];}void CUUIDGen::GetUUIDStr(uuid_str_t &str) const{  sprintf((char *)str,	  "%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x",	  uuid.Data1, uuid.Data2, uuid.Data3,	  (unsigned char) uuid.Data4[0], (unsigned char) uuid.Data4[1],	  (unsigned char) uuid.Data4[2], (unsigned char) uuid.Data4[3],	  (unsigned char) uuid.Data4[4], (unsigned char) uuid.Data4[5],	  (unsigned char) uuid.Data4[6], (unsigned char) uuid.Data4[7]);}#ifdef TEST#include <stdio.h>int main(){  uuid_str_t str;  uuid_array_t uuid_array;  for (int i = 0; i< 10; i++) {    CUUIDGen uuid;    uuid.GetUUIDStr(str);    printf("%s\n",str);    uuid.GetUUID(uuid_array);    printf("%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x\n",	   uuid_array[0], uuid_array[1], uuid_array[2], uuid_array[3], 	   uuid_array[4], uuid_array[5], uuid_array[6], uuid_array[7], 	   uuid_array[8], uuid_array[9], uuid_array[10], uuid_array[11], 	   uuid_array[12], uuid_array[13], uuid_array[14], uuid_array[15]);  }  return 0;}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -