Hello,
to reproduce the follwoing steps, "managed DirectX" must be installed.
Despite, this is not a DirectX but an IDE problem (at least in VB.Net). As
nobody answered in m.p.vsnet.ide and m.p.vsnet.debugging, I try it here.
1. Create a new WindowsApplication
2. Add references to
- Microsoft.DirectX.dll
- Microsoft.DirectX.Direct3D.dll
3. In the form's code window add
Imports Microsoft.DirectX
Imports Microsoft.DirectX.Direct3D
and
Private Sub Form1_Load( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) _
Handles MyBase.Load
Dim pp As New PresentParameters
Dim mat1, mat2, mat3 As Matrix
mat1 = Matrix.Identity
mat2 = Matrix.Identity
mat3 = Matrix.Identity
mat1 = Matrix.Multiply(mat2, mat3)
End Sub
(note: Whether or not the code makes sense does not matter. It's the IDE's
behavior I'm describing)
4. set a break point at the line "mat1 = Matrix.Identity"
5. Start and wait til the break point is hit
6. open the locals window and open variable pp
Bug: All members are displayed as "error: can not obtain value"
Now, try also: In the immediate window, execute
Msgbox("test")
You'll get a message that the "expression can not be evaluated". This
message does not makes sense.
Now stop the application and remove the last line (containing
Matrix.Multiply). Restart and examine variable pp again: The problem does
not show up anymore. Now you can also try the Msgbox and it works how it
should.
This is a major issue that makes it almost impossible to debug managed
DirectX applications because it's the same in the watch and quick-watch
windows.
--
Armin