gpt4 book ai didi

casting - 将非托管 GUID 转换为托管 Guid^

转载 作者:行者123 更新时间:2023-12-01 16:32:51 42 4
gpt4 key购买 nike

我是 C++/CLI 的新手,我正在尝试将 native C++ GUID 转换为我的 C++/CLI Guid^。尝试转换时:

BlockInfo^ blockInfo = gcnew BlockInfo();
blockInfo->BlockFilterGuid = ba.BlockAllFilter.subLayerKey;

...我收到以下错误:

error C2440: '=' : cannot convert from 'GUID' to 'System::Guid ^'

我知道我的问题的根源是我试图从非托管类型转换为托管类型,但我对 C++ 或 C++/CLI 的精通程度不足以知道如何解决该问题。

最佳答案

native GUID 已定义:

typedef struct _GUID {
DWORD Data1;
WORD Data2;
WORD Data3;
BYTE Data4[8];
} GUID;

您需要分配一个 System::Guid 并使用 native GUID 中的数据正确构造它。

System::Guid ^FromNativeGUID(const GUID &g)
{
return gcnew System::Guid(g.Data1, g.Data2, g.Data3, g.Data4[0], g.Data4[1], g.Data4[2],
g.Data4[3], g.Data4[4], g.Data4[5], g.Data4[6], g.Data4[7]);
}

关于casting - 将非托管 GUID 转换为托管 Guid^,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2306062/

42 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com