2009-07-16 3 views
0

Direct3D로 C# interop을 수행하고 있습니다. (SlimDX 및 XNA에 대해 알고 있으므로 여기의 장점에 익숙하지 않습니다.) 그리고 ID3DX10Mesh 인터페이스를 전달하는 D3DX10CreateMesh를 호출하고 있습니다. "해당 인터페이스가 지원되지 않습니다 (HRESULT 예외 : 0x80004002 (E_NOINTERFACE))"오류가 나타납니다. D3DX10CreateMesh 호출은 10 메쉬를 작성하여 9 메쉬를 복사하려고 시도하는 동안 (x 파일을 성공적으로로드 한 후) 호출됩니다. ID3DX10Mesh에 대한 C# 정의를 살펴 봤지만 정의한 다른 모든 작업 인터페이스와 동일한 구조를 따릅니다.ID3DX10Mesh 및 ID3DXMesh 가이드 정확히 동일

그러나 그 때 나는 뭔가를 알아 챘다. 9 및 10 메시의 안내선은 정확히 같음 (4020E5C2-1403-4929-883F-E2E849FAC195)입니다. 나는 d3dx9mesh 및 d3dx10mesh 헤더를 두 번 확인했으며 이것이 사실입니다. 9 메쉬 인터페이스는 작동하지만 10은 그렇지 않습니다. (이것은 아마도 인스턴스화 순서에 따라 다를 수 있습니다.) C/C++ 애플리케이션에서도 두 메쉬를 함께 사용할 수 없다는 것을 의미하므로 개인적으로 이해하지 못합니다. 너는 할 수있다. 나는 그것이 NVUT SDK에서 끝난 것을 보았습니다. Runtime Callable Wrapper가 Guids에게 혼란스러워하고 있다고 생각할 수 있습니까?

왜 메쉬 가이드가 동일하고 C/C++ 응용 프로그램이 충돌을 피할 수 있습니까?

답변