我试图在我的C++/CLI项目中使用编组库.编译时#include <msclr/marshal.h>我得到错误error C2872: 'IServiceProvider' : ambiguous symbol.大多数决议似乎暗示#include <windows.h>
像这里的那样 - > 模糊的引用,但我没有那些包括.我只有:
using namespace System;
using namespace System::Configuration;
using namespace std;
#include <msclr/marshal.h>
Run Code Online (Sandbox Code Playgroud)
我该如何调试此问题?
Han*_*ant 45
间接地,marshal.h包括它.它在全局命名空间中转储了大量标识符.这些宏特别笨拙,很多都与框架中使用的名称相匹配.
marshal.h所做的很多事情也可以由元帅级完成.但我无法帮助你,你没有提到你为什么要使用它.您可以通过在using语句之前放置#include指令来解决这个特定的不幸事件:
#include <msclr/marshal.h>
using namespace System;
using namespace System::Configuration;
Run Code Online (Sandbox Code Playgroud)
小智 10
确保你只有:
using namespace System;
Run Code Online (Sandbox Code Playgroud)
在CLR项目的cpp文件中而不在标题中.创建CLR类库项目时,Visual Studio会自动将其添加到标题中.在cpp本身中,includes必须位于"using namespace"之前.
| 归档时间: |
|
| 查看次数: |
19073 次 |
| 最近记录: |