Native C 코드 용 C++/CLI 래퍼를 만들었습니다. 해당 C 코드는 자신의 Object
typedef이고 연결시 오류가 C2872 'Object': ambiguous symbol
입니다. 컴파일러의 출력은 다음과 같습니다Visual Studio에서 'Object'를 처리하는 방법 : 모호한 기호
1>C:\src\OS_kernel.h(27): error C2872: 'Object': ambiguous symbol
1>C:\src\OS_types.h(261): note: could be 'ObjectStruct *Object'
1>C:\src\OS_kernel.h(27): note: or 'System::Object'
그것은 내가 C++/CLI 래퍼의 목적으로이 네이티브 C 코드를 조롱하고 있음을 언급 할 가치가있을 수 있습니다; 소스 코드를 사용할 수없는 경우 사용할 수없는 잠재적 인 솔루션이 열리는 지 확실하지 않습니다. 거기에 코드를 사용할 정의를 지정하는 방법이 있다고 생각하지만이를 지정하는 방법을 모르겠습니다. 그게 가능하니? ObjectStruct *Object
을 사용하도록 지정하고 싶습니다.
잠재적으로 수백 또는 수천 개의 개별 장소가 될 수 있으므로 모의 코드를 수정하지 않아도 좋을 것입니다.
제쳐두고, 나는 또한 Buffer
및 Boolean
과 같은 네이티브 라이브러리가 사용하는 다른 유형에 대해서도이 오류가 발생합니다.
범위 분석 연산자'::'와 함께':: Object'를 사용하여 전역 범위 C'Object'를 참조 할 수 있어야합니다. – crashmstr
그게 효과가! 슬프게도,이 해결책은 모든 모호한 오류가 모의 코드에서 발생하는 모든 장소를 터치해야한다는 것을 의미합니다. –