gpt4 book ai didi

c++ - 错误 3699,为对象创建 GUID

转载 作者:太空狗 更新时间:2023-10-29 19:49:47 27 4
gpt4 key购买 nike

我正在尝试使用 CoCreateGuid(GUID* guid) 为我的应用程序中的对象创建一个 guid。我在尝试使用此功能时遇到一些错误。

error C3699: '*' : cannot use this indirection on type 'IServiceProvider' in servprov.h
error C2872: 'IServiceProvider' : ambiguous symbol in servprov.h
error C2371: 'IServiceProvider' : redefinition; different basic types in servprov.h

这是我正在使用的代码,目前没有太多内容。

#include "Stdafx.h"
#include "AutomationCPP.h"
#include <Rpc.h>
#include <Guiddef.h>

using namespace System;

void AutomationCPP::CustomAutomationCPP::Instantiate()
{
long result;
unsigned char *guidstr;
HRESULT hr;
GUID *UIAguid;

CoCreateGuid(UIAguid); //errors here
}

它说要为参数使用 GUID 指针,但我一直收到这些错误。非常感谢您的帮助!

最佳答案

您的一个 header (可能是 AutomationCPP.h)中的 using 指令(using namespace System;)导致了问题。

您间接包含了 servprov.h,它定义了 ::IServiceProvider ,并且您已经获得了带来 System::IServiceProvider 的 using 指令进入全局范围。这会导致对未完全限定的 IServiceProvider 的任何使用产生歧义。

摆脱 using 指令,而是仅对您实际需要的命名空间 System 中的符号使用 using 声明

关于c++ - 错误 3699,为对象创建 GUID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6599960/

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