GUID guid;
//可以使用CoCreateGuid()这个函数产生一个唯一标识的GUID。
HRESUIT hRet == ::CoCreateGuid(&guid);
//如何将生成的guid转换为代码中使用的字符串呢,有如下几种方式
//1、直接使用GUID结构体的每一个成员变量即可
struct { unsigned long Data1; unsigned short Data2;
unsigned short Data3;
unsigned char Data4[8]; } GUID;
//2、使用StringFromCLSID
LPOLESTR lpszOleUuidstr = NULL;
StringFromCLSID(CLSID_ImageOle,&lpszOleUuidstr);
LPTSTR lpszUuidstr = OLE2T(lpszOleUuidstr);
//使用完成释放函数分配内存
CoTaskMemFree(lpszOleUuidstr);
//3、使用StringFromGUID2();
TCHAR strCLSID[48];
StringFromGUID2(guid,strCLSID,48);
//由于这种方式没有在堆上动态分配内存,故不需要程序员关心内存释放问题
//4、类似的还有StringFromIID
WINOLEAPI StringFromIID(REFIID rclsid,LPOLESTR * lplpsz);
WINOLEAPI IIDFromString(LPOLESTR lpsz,LPIID lpiid);
//产生一个IID函数
HRESULT CoGetMalloc(DWORD dwMemContext,LPMALLOC* ppMalloc);
//以上是我在程序中使用时遇到的和GUID转换为字符串相关的的函数,暂时总结于此。
GUID与字符串之间的恩恩怨怨
最新推荐文章于 2021-02-04 23:21:49 发布