询问者
这段代码为什么出错?

问题
-
全部代码如下:
Public Class Form1 Private Declare Sub ShockproofGetAccelerometerData Lib "sensor.dll" (ByRef data As AccelData) Private Structure AccelData Dim stat As Integer Dim x As Short Dim y As Short End Structure Public Function GetAccelData() As Short '(ByVal stat As Short, ByVal x As Short, ByVal y As Short) As Long Dim data As AccelData ShockproofGetAccelerometerData(data) Debug.Print("Status: " & data.stat) Debug.Print("X: " & data.x) Debug.Print("Y: " & data.y) 'WORKS Label1.Text = data.y 'WONT WORK,WHY? End Function Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click GetAccelData() End Sub End Class
这段代码在注释了“'WONT WORK,WHY?”的那一句会报错:
在 System.AccessViolationException 中第一次偶然出现的“WindowsApplication1.exe”类型的异常
Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
请问这是为什么?
我要读的三个数据都读出来了,为什么赋给label1就会出错呢?
谢谢!
全部回复
-
出错提示就是类型异常,现在的关键就是 data.y 的类型, 你看data.y是不是定长变量.
人要诚实!还要踏实! 我先为人人,人人再为我! 我的Spaces: http://mydodu.spaces.live.com/ -