VB.Net(VS2010)调用系统GetTickCount函数计算时间差错误

VB.Net(VS2010)调用系统GetTickCount函数计算时间差异常
请高手指教,今天我在用VB.net调用GetTickCount函数计算时间差,发现结果异常,C的值为-4294967405,用的是VS2010环境,但是使用VS2005就不存在这个情况(C=-109),注:不是同一台电脑。
还请高手指教
实验代码如下:
Public Class Form1

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  Dim i As Long
  Dim j As Long
  Dim c As Long
  i = GetTickCount()
  Threading.Thread.Sleep(100)
  j = GetTickCount()
  c = i - j
  End Sub
End Class

------解决方案--------------------
GetTickCount返回当前操作系统启动后的毫秒数。最多包含49.7天。如果系统连续运行,将在约 24.9 天内从零递增至 Int32.MaxValue,然后跳至 Int32.MinValue(这是一个负数),再在接下来的 24.9 天内递增至零。 如此循环往复。
------解决方案--------------------
VB.NET code

 Private Declare Function GetCurrentTime Lib "kernel32" Alias "GetTickCount" () As Integer

------解决方案--------------------
4294967405二进制是100000000000000000000000001101101,其末尾1101101就是十进制的109。
GetTickCount本身返回int,你声明为long后会导致这个int前的4个字节的数据被包含进来,而那4个字节指不定是什么。