2014-01-17 11 views
0

나는 잠시 동안 작업 해 왔던 프로젝트를 가지고 있으며 주기적으로 윈도우에 포함 된 모호한 심볼 오류가 발생합니다. 이들은 종종 .net 네임 스페이스와 관련이 있습니다. 이 프로젝트에는 관리되는 C++ 코드와 관리되지 않는 C++ 코드가 모두 포함되어 있으며 최근에는 관리되지 않는 클래스에서 ADO를 통해 SQL 서버를 사용하여 로깅하기 위해 텍스트 파일을 사용하는 것으로 전환하기로 결정했습니다. ADO에서 http://msdn.microsoft.com/en-us/library/windows/desktop/ms675103(v=vs.85).aspx네임 스페이스 confilcts 네임 스페이스 confilcts .NET C++

을 가지고 - MS에 의해 제안 클래스의 헤더에서 나는

#import <C:\\Program Files\\Common Files\\System\\ado\\msado15.dll> rename("EOF", "AdoNSEOF") 

를 사용합니다. 이 고립에서 잘 컴파일하지만 관리 부분에서 포함 할 때 나는 같은 오류를 얻을 :

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에 영향을주지 않도록 충돌하는 네임 스페이스를 캡슐화하는 몇 가지 방법이 있나요? 문제는 자르기를 계속하고 여기에 내가 완전히 이해하지 못하는 무언가가있는 것 같습니다. 감사합니다. Bruce.

답변

0

사용중인 네임 스페이스 선언 중 일부를 제거하고 충돌을 피하기 위해 전체 이름을 사용해야합니다.