如何快速生成 UUID GUID

如何快速生成 UUID GUID,第1张

通用的GUID的结构如下

typedef struct _GUID {

DWORD Data1;

WORD Data2;

WORD Data3;

BYTE Data4[8];

} GUID;

举一个例子:

假设一个GUID的格式是这样的 6B29FC40-CA47-1067-B31D-00DD010662DA

其中Data1 是32位,可以看做8个四位十六进制数,对应于上面的6B29FC40

其中Data2 是16位,可以看做4个四位十六进制数,对应于上面的CA47

其中Data3 是16位,可以看做4个四位十六进制数,对应于上面的1067

其中Data4 比较特殊,是8个字节也就可以看做16个四位十六进制数

取其Data4[0],Data4[1]来组成4个四位十六进制数,对应于上面的B31D

取其Data4[2],Data4[3]来组成4个四位十六进制数,对应于上面的00DD

取其Data4[4],Data4[5]来组成4个四位十六进制数,对应于上面的0106

取其Data4[6],Data4[7]来组成4个四位十六进制数,对应于上面的62DA

注意:四位十六进制数对应一个GUID字符。

在Windows下提供了一个函数可以生成一个GUID。需要使用的头文件 "objbaseh",需要链接的库ole32lib。

HRESULT CoCreateGuid(GUID pguid);

在Linux下首先需要下载到相应的库文件和头文件

如果是Debian用户可以方便的通过apt命令来获取相关资源。

apt-get install uuid-dev

安装完成后会发现

在/usr/include/ 下有一个uuid文件夹,其中则包含了uuidh头文件。

在/usr/lib/ 下有几个libuuid的链接库文件,包括静态和动态链接库。

打开uuidh你会发现有一个uuid_generate(uuid_t out) 的函数声明。我们可以通过调用这个函数来生成UUID。

uuid_generate(reinterpret_cast<unsigned char >(&guid));

生成GUID是不是很简单!是的,因为生成的算法不用我们去实现,我们是站在前人的肩膀所以我们要感谢他们。

下面给出一个WINDOWS和LINUX下通用的程序。

// uuid_testcpp

#include <string>

#include <stdioh>

#include <iostream>

#include "uuid_testhpp"

#ifdef WIN32

#include <objbaseh>

#else

#include <uuid/uuidh>

#endif

using namespace std;

namespace ChinuxTeam

{

GUID CreateGuid()

{

GUID guid;

#ifdef WIN32

CoCreateGuid(&guid);

#else

uuid_generate(reinterpret_cast<unsigned char >(&guid));

#endif

return guid;

}

std::string GuidToString(const GUID &guid)

{

char buf[64] = {0};

#ifdef __GNUC__

snprintf(

#else // MSVC

_snprintf_s(

#endif

buf,

sizeof(buf),

"{%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X}",

guidData1, guidData2, guidData3,

guidData4[0], guidData4[1],

guidData4[2], guidData4[3],

guidData4[4], guidData4[5],

guidData4[6], guidData4[7]);

return std::string(buf);

}

}

对应的头文件

// uuid_testhpp"

#include <string>

#include <stdioh>

#include <iostream>

typedef struct _GUID

{

unsigned long Data1;

unsigned short Data2;

unsigned short Data3;

unsigned char Data4[8];

} GUID, UUID;

namespace ChinuxTeam

{

GUID CreateGuid();

std::string GuidToString(const GUID &guid);

}// namespace ChinuxTeam

最后一个 GuidToString()稍微解释一下,作用就是把GUID以固定的格式输出到标准string字符串中,

根据编译器的不同调用分别调用了不同的字符串打印函数。

另外附一个简单的测试函数

#include <string>

#include <stdioh>

#include <iostream>

#ifdef WIN32

#include "objbaseh"

#else

typedef struct _GUID

{

unsigned long Data1;

unsigned short Data2;

unsigned short Data3;

unsigned char Data4[8];

} GUID, UUID;

#endif

namespace ChinuxTeam{

GUID CreateGuid();

std::string GuidToString(const GUID &guid);

}

运行后会生成一个GUID并打印到标准输出的控制台上。

1遇到这个问题,只能通过u盘安装最新版电脑系统,进行解决。优盘要求是8G或者8G以上的,准备好优盘后需要在电脑上下载系统安装程序,打开App Store 搜索 Mojave,,再点击获取。等待下载完成,下载完成后先不要启动安装,如果下载速度较慢可以到网盘或者其他地方找下载资源。

2系统安装程序下载完之后,将准备好的优盘插到电脑上(桌面会显示优盘的名称),打开“应用程序—>其他—>磁盘工具”;

3打开磁盘工具之后,将优盘抹掉(格式化)成「Mac OS X 扩展(日志式)」格式、GUID 分区图,并将优盘命名为「Mojave」如下图所示:按照途图中顺序依次检查,检查没问题后点抹掉;

4优盘抹掉之后,打开“应用程序—>其他—>终端”;

5打开终端之后 将下列代码一字不差的粘贴到终端里面去:

sudo /Applications/Install\ macOS\ Mojaveapp/Contents/Resources/createinstallmedia --volume /Volumes/Mojave /Applications/Install\ macOS\ Mojaveapp --nointeraction

6粘贴进去之后按回车键,会提示你输入密码,这个密码是你电脑的开机密码,输入的过程因为输入密码是加密的所以屏幕不会有任何反应,输完密码回车即可,然后是漫长漫长漫长的等待,等待的时间长短取决于你电脑的配置

GetSetting 函数

从 Windows 注册表中的应用程序项目返回注册表项设置值。

语法

GetSetting(appname, section, key[, default])

电脑在安装GHOST系统时,出现“系统被恶意修改,请从正确渠道获取系统安装程序”提示时,说明这个版本 *** 作系统有问题,请更换 *** 作系统后重新安装即可。

Ghost系统是指通过赛门铁克公司(Symantec Corporation)出品的Ghost在装好的 *** 作系统中进行镜像克隆的版本,通常GHOST用于 *** 作系统的备份,在系统不能正常启动的时候用来进行恢复的。

苹果双系统,安装os x,说这个磁盘没有使用guid分区表方案。是设置错误造成的,解决方法如下:

1、首先在Mac⌘+R,然后按开机键。

2、接着在页面,点击磁盘工具,点击磁盘。

3、然后点击磁盘右侧栏的-抹掉。

4、在d出的对话框中,格式mac os扩展(日志式),方案(GUID分区图),点击抹掉,如图。

5、然后点击重新安装MacOS,即可安装MacOS的系统了,如图。

您想问的是苹果笔记本电脑重装系统显示安装时发生错误,请尝试重新运行此应用的原因吗?这种情况原因如下:

1、安装程序损坏:安装程序可能损坏或不完整,导致无法正确安装系统。解决方法是重新下载或获取安装程序,并检查程序是否完整。

2、硬件故障:苹果笔记本电脑的硬件问题也可能导致系统安装失败,如硬盘故障、内存不足等。解决方法是检查硬件是否有故障,并进行修复或更换。

3、网络连接问题:如果您是通过网络连接下载安装程序,网络连接不稳定或速度慢也可能导致安装失败。建议您检查网络连接是否正常,并尝试使用其他网络连接方式。

4、其他软件冲突:某些第三方软件可能与系统安装程序冲突,导致安装失败。建议您先卸载可能造成冲突的软件,然后再尝试安装系统。

以上就是关于如何快速生成 UUID GUID全部的内容,包括:如何快速生成 UUID GUID、没有mac版本的软件怎么安装、vb 获取已安装的程序名和路径等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9413576.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存