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?問題一直在出現,這裏似乎有些我不完全明白的地方。 非常感謝, 布魯斯。