2013-08-01 2 views
5

내 C# 응용 프로그램이이 창과 충돌합니다. SharpDX를 사용하는 DirectX 응용 프로그램입니다.이 C# 충돌을 디버깅하는 방법은 무엇입니까?

이 디버깅을 시작할 위치를 모르겠습니다. 어떤 팁?

enter image description here

를 스택은 다음과 같습니다 : 내가 네이티브 코드의 디버깅을 사용하도록 설정하면

enter image description here

는, 충돌은 다음과 같습니다 당신은 잘못된 버전을 사용하는

ntdll.dll!77d1f8b1()  
[Frames below may be incorrect and/or missing, no symbols loaded for ntdll.dll] 
ntdll.dll!77d1f8b1()  
KernelBase.dll!7658149d() 
kernel32.dll!75c51194()  
kernel32.dll!75c51194()  
ntdll.dll!77d5b459()  
ntdll.dll!77d5b42b()  
ntdll.dll!77d5b3ce()  
ntdll.dll!77d10133()  
XAudio2_7.dll!61fb6b43()  
XAudio2_7.dll!61fa7fa2()  
XAudio2_7.dll!61fa79e9()  
XAudio2_7.dll!61fa8bb8()  
XAudio2_7.dll!61fa9492()  
[External Code] 
SharpDX.XAudio2.dll!SharpDX.XAudio2.Voice.DestroyVoice() Line 916 + 0x34 bytes C# 
+2

0xc0000005는 지정된 주소 (0x5fea4c9)의 액세스 위반을 의미합니다. 주소는 null 포인터 (0x00000000)가 아니므로, 네이티브 코드가 속하지 않은 메모리에 액세스하려고했거나 이미 삭제되었거나 액세스 할 수 없었습니다. 나열된 "가장 일반적인 소스"를 확인 했습니까? – nvoigt

+0

포인터를 사용하고 있습니까? –

+0

@SriramSakthivel 직접적으로 아니지만, 내가 사용하는 directx 라이브러리는 포인터를 사용합니다. – clamp

답변

1

SharpDX.XAudio2.dll에 대한 설명입니다. 즉, 예를 들어 x86 응용 프로그램이고 x64 버전을 사용하려고합니다. dll의 적절한 버전을로드해야합니다.

+0

어떻게 알 수 있습니까? – NWard

+0

잘못된 버전의 .dll을 사용하면 이것은 일반적인 오류입니다. –

관련 문제