Bonjour,
D'abord, je tiens à préciser que le problème décrit ci-dessous se produit aussi avec l'exemple fourni avec le SDK DirectX dans le dossier Samples\Managed\DirectSound\CaptureSound
Voici l'extrait de code (il plante sur la dernière ligne)
Sachant que dans le constructeur j'ai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 for (int i = 0; i < this.NumberRecordNotifications; i++) { this.m_PositionNotify[i].Offset = (this.NotifySize * i) + this.NotifySize - 1; this.m_PositionNotify[i].EventNotifyHandle = this.m_NotificationEvent.Handle; } this.m_Notify = new Microsoft.DirectX.DirectSound.Notify(CaptureBuffer); this.m_Notify.SetNotificationPositions(this.m_PositionNotify, this.NumberRecordNotifications);
Si j'exécute le programme sur ma machine pas de problème. Si j'exécute sur une autre machine, j'ai un joli crash, SAUF si j'exécute le programme sur cette autre machine en utilisant le débuggage distant de VS2005
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 this.NumberRecordNotifications = 16; this.m_PositionNotify = new Microsoft.DirectX.DirectSound.BufferPositionNotify[this.NumberRecordNotifications + 1];
Je n'y comprend rien !
Le crash retourne les informations suivantes :
Consultez la fin de ce message pour plus de détails sur l'appel du débogage
juste-à-temps (JIT) à la place de cette boîte de dialogue.
************** Texte de l'exception **************
System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet.
à Microsoft.DirectX.DirectSound.Notify.SetNotificationPositions(BufferPositionNotify[] notify, Int32 numNotificationPositions)
à rectests.record.BeginCapturing() dans D:\frantz\Electronique\rectests\c#-v2\rectests\record.cs:ligne 196
à rectests.record.Start(String FileName) dans D:\frantz\Electronique\rectests\c#-v2\rectests\record.cs:ligne 114
à rectests.Form1.rec() dans D:\frantz\Electronique\rectests\c#-v2\rectests\Form1.cs:ligne 235
à rectests.Form1.btn_rec_Click(Object sender, EventArgs e) dans D:\frantz\Electronique\rectests\c#-v2\rectests\Form1.cs:ligne 241
à System.Windows.Forms.Control.OnClick(EventArgs e)
à System.Windows.Forms.Button.OnClick(EventArgs e)
à System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
à System.Windows.Forms.Control.WndProc(Message& m)
à System.Windows.Forms.ButtonBase.WndProc(Message& m)
à System.Windows.Forms.Button.WndProc(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
à System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Assemblys chargés **************
mscorlib
Version de l'assembly*: 2.0.0.0
Version Win32*: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase*: file:///c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
rectests
Version de l'assembly*: 1.0.0.0
Version Win32*: 1.0.0.0
CodeBase*: file:///C:/Nouveau%20dossier/rectests.exe
----------------------------------------
System.Windows.Forms
Version de l'assembly*: 2.0.0.0
Version Win32*: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase*: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Version de l'assembly*: 2.0.0.0
Version Win32*: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase*: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Version de l'assembly*: 2.0.0.0
Version Win32*: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase*: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
Interop.QuartzTypeLib
Version de l'assembly*: 1.0.0.0
Version Win32*: 1.0.0.0
CodeBase*: file:///C:/Nouveau%20dossier/Interop.QuartzTypeLib.DLL
----------------------------------------
Microsoft.DirectX.DirectSound
Version de l'assembly*: 1.0.2902.0
Version Win32*: 5.04.00.2904
CodeBase*: file:///C:/WINDOWS/assembly/GAC/Microsoft.DirectX.DirectSound/1.0.2902.0__31bf3856ad364e35/Microsoft.DirectX.DirectSound.dll
----------------------------------------
System.resources
Version de l'assembly*: 2.0.0.0
Version Win32*: 2.0.50727.42 (RTM.050727-4200)
CodeBase*: file:///C:/WINDOWS/assembly/GAC_MSIL/System.resources/2.0.0.0_fr_b77a5c561934e089/System.resources.dll
----------------------------------------
Microsoft.VisualC
Version de l'assembly*: 8.0.0.0
Version Win32*: 8.00.50727.1433
CodeBase*: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.VisualC/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualC.dll
----------------------------------------
Microsoft.DirectX
Version de l'assembly*: 1.0.2902.0
Version Win32*: 5.04.00.2904
CodeBase*: file:///C:/WINDOWS/assembly/GAC/Microsoft.DirectX/1.0.2902.0__31bf3856ad364e35/Microsoft.DirectX.dll
----------------------------------------
mscorlib.resources
Version de l'assembly*: 2.0.0.0
Version Win32*: 2.0.50727.1433 (REDBITS.050727-1400)
CodeBase*: file:///c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
System.Windows.Forms.resources
Version de l'assembly*: 2.0.0.0
Version Win32*: 2.0.50727.42 (RTM.050727-4200)
CodeBase*: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_fr_b77a5c561934e089/System.Windows.Forms.resources.dll
----------------------------------------
************** Débogage JIT **************
Pour activer le débogage juste-à-temps (JIT), le fichier de configuration pour cette
application ou cet ordinateur (machine.config) doit avoir la valeur
jitDebugging définie dans la section system.windows.forms.
L'application doit également être compilée avec le débogage
activé.
Par exemple*:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
Lorsque le débogage juste-à-temps est activé, les exceptions non gérées
seront envoyées au débogueur JIT inscrit sur l'ordinateur
plutôt que d'être gérées par cette boîte de dialogue.
Partager