2013-08-01 50 views
5

Ứng dụng C# của tôi gặp sự cố với cửa sổ này. Đây là một ứng dụng DirectX sử dụng SharpDX.Làm cách nào để gỡ lỗi sự cố C# này?

Tôi thậm chí không biết bắt đầu gỡ lỗi vấn đề này ở đâu? Có lời khuyên nào không?

enter image description here

khi tôi cho phép gỡ lỗi của mã nguồn gốc, sự sụp đổ trông như thế này:

enter image description here

và chồng là:

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 có nghĩa là đó là vi phạm truy cập tại địa chỉ được chỉ định (0x5fea4c9). Địa chỉ không phải là một con trỏ rỗng (0x00000000), do đó, nó là mã gốc cố gắng truy cập vào một phần bộ nhớ không thuộc về nó, đã bị xóa hoặc không thể truy cập được. Bạn đã kiểm tra "các nguồn phổ biến nhất" được liệt kê chưa? – nvoigt

+0

Bạn có đang sử dụng con trỏ không? –

+0

@SriramSakthivel không trực tiếp, nhưng thư viện directx mà tôi sử dụng, sử dụng con trỏ. – clamp

Trả lời

1

Bạn đang sử dụng một phiên bản sai của SharpDX.XAudio2.dll. Điều này có nghĩa là bạn ứng dụng, ví dụ, là x86 và nó đang cố gắng sử dụng một phiên bản x64. Bạn phải tải phiên bản thích hợp của dll.

+0

Làm cách nào để bạn biết? – NWard

+0

Đây là lỗi phổ biến khi bạn đang sử dụng phiên bản .dll sai –