StringFromGUID2 函数是 Win32 API 中的一个函数,用于将 GUID(Globally Unique Identifier)转换为字符串形式。该函数在 Combaseapi.h 头文件中声明。

以下是 StringFromGUID2 函数的基本定义:
int StringFromGUID2(
  REFGUID rguid,
  LPOLESTR lpsz,
  int      cchMax
);

参数说明:

  •  rguid: 要转换为字符串的 GUID。

  •  lpsz: 指向接收字符串的缓冲区的指针。

  •  cchMax: 缓冲区的大小(以字符为单位)。


函数返回一个整数,表示字符串的长度(不包括 null 终止符)。如果转换失败或者缓冲区大小不足,返回的值为 0。

示例用法:
#include <Windows.h>
#include <Combaseapi.h>

int main() {
    // 创建一个GUID
    GUID guid = {0x12345678, 0x9ABC, 0xDEF0, {0x12, 0x34, 0x56, 0x78, 0x9A, 0xBC, 0xDE, 0xF0}};

    // 分配缓冲区
    const int bufferSize = 39; // 标准的GUID字符串长度(包括花括号和短划线)
    WCHAR buffer[bufferSize];

    // 将GUID转换为字符串
    int length = StringFromGUID2(guid, buffer, bufferSize);

    if (length > 0) {
        // 在这里可以使用buffer进行其他操作
    } else {
        // 转换失败或者缓冲区太小
    }

    return 0;
}

在这个示例中,StringFromGUID2 函数被用来将一个 GUID 转换为字符串形式。如果转换成功,就可以在后续代码中使用 buffer 进行其他操作。需要注意,缓冲区的大小应该足够大以容纳转换后的字符串,否则转换可能会失败。


转载请注明出处:http://www.zyzy.cn/article/detail/24605/Win32 API/Combaseapi.h/StringFromGUID2