CType函数的算术溢出为IntPtr long值

时间:2015-09-17 21:51:52

标签: .net vb.net

我正在获得下面的算术溢出异常。为什么CType不处理它应接受任何对象的长值(来自IntPtr变量)?这里的工作是什么?

  

异常:算术运算导致溢出

注意:我在VS2013中使用.Net 2.0

CODE

    Dim testValue As Long
    testValue = 919016853520  'It can be 0 also sometimes.

    Dim lHkey2 As IntPtr
    'lHkey2 = testValue
    lHkey2 = IntPtr.op_Explicit(testValue)

    If (CType(lHkey2, Boolean)) Then
        Console.WriteLine("A")
    Else
        Console.WriteLine("B")
    End If

1 个答案:

答案 0 :(得分:0)

问题可能与在32位操作系统上定义IntPtr(64位)有关。

请参阅: https://msdn.microsoft.com/en-us/library/837ksy6h(v=vs.110).aspx