c++生成GUID的两种方法是什么

  介绍

这篇文章主要介绍了c++生成GUID的两种方法是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

GUID是软件开发中常用的组件,用于生成唯一的对象,在c#、Java以及Python等语言中,因为它们的标准库比较丰富,因此GUID的生成比较简单,往往一两句代码就能搞的定。而c++语言本身以及标准库都没有提供生成GUID的API,因此,无法直接使用c++生成GUID。本文介绍两种利用c++间接创建GUID的方法:1)调用Win32API-CoCreateGuid函数;2)使用提高库。

使用CoCreateGuid函数

CoCreateGuid是Windows系统本身提供的API函数,位于<代码> objbase。h 头文件中,因此,我们必须首先包括该头文件:

包括& lt; objbase.h> 

调用CoCreateGuid的代码如下所示:

GUID GUID;   HRESULT h=CoCreateGuid(和guid);   如果(h==S_OK)   ans=GuidToString (guid);   其他的   把runtime_error(“生成guid失败!“);

上述代码中,如果创建guid成功,则h的值为S_OK,失败则为其他标志位.HRESULT是COM组件的一类返回值,请参考HRESULT.GuidToString函数用于将生成的guid转换为std:: string。相关教程:c++视频教程

 std:: string GuidToString (const GUID和GUID)
  {
  char buf [64]={0};
  sprintf_s (buf sizeof (buf),
  “{% 08年04 x - x - % % % 02 x % 02 - 04 x - x % % 02年02 x % 02 x % 02 x % 02 x % 02}“,
  guid。Data1、guid。Data2 guid.Data3,
  guid。Data4 [0], guid。Data4 [1], guid。guid.Data4 Data4 [2], [3],
  guid。Data4 [4], guid。Data4 [5], guid。guid.Data4 Data4 [6], [7]);
  返回std:: string (buf);
  }

这种基于Win32API生成GUID的方法的优点在于不需要依赖其他库,缺点在于无法跨平台,只能在Windows平台的使用。

使用Boost库

使用Boost库来生成GUID相对就比较简单了,代码如下:

 # include & lt;提高/uuid/uuid.hpp>
  # include & lt;提高/uuid/uuid_generators.hpp>
  # include & lt;提高/uuid/uuid_io.hpp>
  
  boost:: uuid:: uuid uid=提高::uuid: random_generator () ();
  常量字符串uid_str=提高::uuid:: to_string (uid);
  cout & lt; & lt;uid_str & lt; & lt;endl; 

首先加载包,然后使用boost:: uuid命名空间下的相关类型和函数就可以创建std:: string类型的GUID了。基于提高来生成GUID的方法比较简单,但是缺点是需要额外引入提高库。

感谢你能够认真阅读完这篇文章,希望小编分享c++生成GUID的两种方法是什么内容对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,遇到问题就找,详细的解决方法等着你来学习!

c++生成GUID的两种方法是什么