gpt4 book ai didi

c++-cli - 使用 marshal.h 进行编译时出现问题 : error C2872: 'IServiceProvider' : ambiguous symbol

转载 作者:行者123 更新时间:2023-12-02 22:22:08 25 4
gpt4 key购买 nike

我正在尝试在我的 C++/CLI 项目中使用编码库。当使用 #include <msclr/marshal.h> 编译时我收到错误 error C2872: 'IServiceProvider' : ambiguous symbol 。大多数决议似乎都建议移动 #include <windows.h>就像这里的 -> Ambiguous references ,但我没有这些内容。我所拥有的是:

using namespace System;
using namespace System::Configuration;
using namespace std;
#include <msclr/marshal.h>

如何调试此问题?

最佳答案

你确实这么做了,marshal.h 间接包含了它。它在全局命名空间中转储大量标识符。这些宏特别尴尬,其中很多与框架中使用的名称相匹配。

marshal.h 所做的很多事情也可以由 Marshal 类完成。但我无法帮助你,你没有提到为什么要使用它。您可以通过将 #include 指令放在 using 语句之前来解决此特定问题:

#include <msclr/marshal.h>
using namespace System;
using namespace System::Configuration;

关于c++-cli - 使用 marshal.h 进行编译时出现问题 : error C2872: 'IServiceProvider' : ambiguous symbol,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4000663/

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