0
我有一个项目,我一直在努力一段时间,并定期收到似乎来自Windows包含模糊符号错误。它们通常与.net命名空间相关。该项目包括托管和非托管C++代码,我最近决定从使用文本文件登录到通过ADO在非托管类中使用SQL服务器。在类的报头我使用命名空间confilcts .NET C++
#import <C:\\Program Files\\Common Files\\System\\ado\\msado15.dll> rename("EOF", "AdoNSEOF")
由MS所建议 - http://msdn.microsoft.com/en-us/library/windows/desktop/ms675103(v=vs.85).aspx
在ADO带来。这将编译孤立罚款,但在管理部分包括,当我得到这样的错误:
3>c:\program files (x86)\microsoft visual studio 9.0\vc\include\comdefsp.h(216) : error C2872: 'IDataObject' : ambiguous symbol
3> could be 'C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\objidl.h(5948) : IDataObject'
3> or 'c:\windows\microsoft.net\framework\v2.0.50727\system.windows.forms.dll : System::Windows::Forms::IDataObject'
3>c:\program files (x86)\microsoft visual studio 9.0\vc\include\comdefsp.h(216) : error C2872: 'IDataObject' : ambiguous symbol
3> could be 'C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\objidl.h(5948) : IDataObject'
3> or 'c:\windows\microsoft.net\framework\v2.0.50727\system.windows.forms.dll : System::Windows::Forms::IDataObject'
3>c:\program files (x86)\microsoft visual studio 9.0\vc\include\comdefsp.h(246) : error C2872: 'IDropTarget' : ambiguous symbol
3> could be 'c:\program files\microsoft sdks\windows\v6.0a\include\oleidl.h(3328) : IDropTarget'
3> or 'c:\windows\microsoft.net\framework\v2.0.50727\system.windows.forms.dll : System::Windows::Forms::IDropTarget'
3>c:\program files (x86)\microsoft visual studio 9.0\vc\include\comdefsp.h(246) : error C2872: 'IDropTarget' : ambiguous symbol
3> could be 'c:\program files\microsoft sdks\windows\v6.0a\include\oleidl.h(3328) : IDropTarget'
3> or 'c:\windows\microsoft.net\framework\v2.0.50727\system.windows.forms.dll : System::Windows::Forms::IDropTarget'
3>c:\program files (x86)\microsoft visual studio 9.0\vc\include\comdefsp.h(771) : error C2872: 'IMessageFilter' : ambiguous symbol
3> could be 'C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\objidl.h(6328) : IMessageFilter'
3> or 'c:\windows\microsoft.net\framework\v2.0.50727\system.windows.forms.dll : System::Windows::Forms::IMessageFilter'
3>c:\program files (x86)\microsoft visual studio 9.0\vc\include\comdefsp.h(771) : error C2872: 'IMessageFilter' : ambiguous symbol
3> could be 'C:\Program Files\Microsoft SDKs\Windows\v6.0A\include\objidl.h(6328) : IMessageFilter'
3> or 'c:\windows\microsoft.net\framework\v2.0.50727\system.windows.forms.dll : System::Windows::Forms::IMessageFilter'
3>c:\program files (x86)\microsoft visual studio 9.0\vc\include\comdefsp.h(1041) : error C2872: 'IServiceProvider' : ambiguous symbol
3> could be 'c:\program files\microsoft sdks\windows\v6.0a\include\servprov.h(103) : IServiceProvider'
3> or 'c:\windows\microsoft.net\framework\v2.0.50727\mscorlib.dll : System::IServiceProvider'
3>c:\program files (x86)\microsoft visual studio 9.0\vc\include\comdefsp.h(1041) : error C2872: 'IServiceProvider' : ambiguous symbol
3> could be 'c:\program files\microsoft sdks\windows\v6.0a\include\servprov.h(103) : IServiceProvider'
3> or 'c:\windows\microsoft.net\framework\v2.0.50727\mscorlib.dll : System::IServiceProvider'
是否有某种方式来封装冲突的命名空间,这样它不会影响.NET?问题一直在出现,这里似乎有些我不完全明白的地方。 非常感谢, 布鲁斯。