首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

GUID的格式转换,该怎么解决

2013-11-11 
GUID的格式转换已知ID是{FE249502-6292-4232-8151-89A555023E25}如何转换成static const struct GUID格式s

GUID的格式转换
已知ID是{FE249502-6292-4232-8151-89A555023E25}
如何转换成static const struct GUID格式
static const IID IID_IKeyValue =
{ 0xFE249502, 0x6292, 0x4232, { 0x81, 0x51, 0x89, 0xA5, 0x55, 0x2, 0x3E, 0x25 } };
[解决办法]

引用:
已知ID是{FE249502-6292-4232-8151-89A555023E25}

是字符串吗?字符串似乎不能直接转GUID
[解决办法]
iid只是一个16字节的内存而已,表达格式你自己对内存进行解释就行了,如果你最前面的说的字符串,那应该可以使用__uuidof转
[解决办法]
IID
The IID structure is a GUID structure used to describe an identifier for a MAPI interface. 

Remarks
An IID structure is used to uniquely identify a MAPI interface and to associate a particular interface with an object. For example, when a client calls IMAPISession::OpenEntry to open a folder, the client sets the lpInterface parameter to point to an IID representing the IMAPIFolder interface. MAPI defines the IMAPIFolder IID to be IID_IMAPIFolder. IID structures are also used to uniquely identify OLE interfaces.

All of the specific IID structures for the MAPI interfaces are defined in the MAPIGUID.H header file. 

See Also
ID Structures 

 
GUID
The GUID structure describes a globally unique identifier. 

Quick Info
Header file: MAPIGUID.H 


typedef struct _GUID 

    unsigned long        Data1; 
    unsigned short       Data2; 
    unsigned short       Data3; 
    unsigned char        Data4[8]; 
} GUID; 
 
Members
Data1 
An unsigned long integer data value. 
Data2 
An unsigned short integer data value. 
Data3 
An unsigned short integer data value. 
Data4 
An array of unsigned characters. 
Remarks
GUID structures are used in MAPI as follows: 

In the MAPIUID structures that uniquely identify service providers. 
For interface identifiers. 
In the property set names of named properties. 
Message store and address book providers call the Microsoft utility UUIDGEN.EXE to generate a GUID structure to use in their MAPIUID structure. By passing the resulting MAPIUID to IMAPISupport::SetProviderUID, these service providers inform MAPI of their unique identifier.

Also, they are used in the implementation of Microsoft Remote Procedure Call (RPC) and the Object Description Language (ODL). For more information about these uses, see the Microsoft RPC Programmer's Guide and Reference, OLE Programmer's Reference, and Inside OLE, Second Edition. 

The GUID structure is defined in the Win32 Programmer's Reference. Specific values for GUID structures that are used within MAPI are defined in the MAPI header file MAPIGUID.H.

See Also
ID Structures, MAPIUID

#include <stdio.h>
#include <windows.h>
char ID[]="{FE249502-6292-4232-8151-89A555023E25}";
static IID IID_IKeyValue;
int i,b[8];
int main() {
    sscanf(ID,"{%8X-%4hX-%4hX-%2X%2X-%2X%2X%2X%2X%2X%2X}",&IID_IKeyValue.Data1,&IID_IKeyValue.Data2,&IID_IKeyValue.Data3,&b[0],&b[1],&b[2],&b[3],&b[4],&b[5],&b[6],&b[7]);
    for (i=0;i<8;i++) IID_IKeyValue.Data4[i]=(unsigned char)b[i];
    printf("{ 0x%08X, 0x%04hX, 0x%04hX, { 0x%02X, 0x%02X, 0x%02X, 0x%02X, 0x%02X, 0x%02X, 0x%02X, 0x%02X } }\n",
        IID_IKeyValue.Data1,
        IID_IKeyValue.Data2,


        IID_IKeyValue.Data3,
        IID_IKeyValue.Data4[0],
        IID_IKeyValue.Data4[1],
        IID_IKeyValue.Data4[2],
        IID_IKeyValue.Data4[3],
        IID_IKeyValue.Data4[4],
        IID_IKeyValue.Data4[5],
        IID_IKeyValue.Data4[6],
        IID_IKeyValue.Data4[7]);
    return 0;
}
//{ 0xFE249502, 0x6292, 0x4232, { 0x81, 0x51, 0x89, 0xA5, 0x55, 0x02, 0x3E, 0x25 } }
//


热点排行