0

嘿,我正在尝试将一点 VB6 转换为 .NET,但出现以下错误:

Microsoft.VisualBasic.dll 中出现“System.InvalidCastException”类型的未处理异常

附加信息:从字符串“”到类型“整数”的转换无效。

以下 .net 代码是卡在CopyMemory(str_Renamed, ptr, count)的地方:

Public Function ptrToStr(ByVal ptr As Integer) As String
Dim count As Integer
Dim str_Renamed As String

    count = lstrlen(ptr)

    If count Then
        str_Renamed = New String(vbNullChar, count)
        CopyMemory(str_Renamed, ptr, count)
        ptrToStr = str_Renamed
    Else
        ptrToStr = ""
    End If
End Function

这些变量的值是:

count       = 4
ptr         = 268978536
str_Renamed = " "

我不确定如何解决此错误...

4

1 回答 1

0

问题似乎是您将字符串作为CopyMemory函数的第一个参数传递。该CopyMemory函数需要一个指针作为第一个参数,因此代码试图将字符串参数转换为整数。据我所知,指针的唯一有效值是整数值或十六进制值。

于 2017-07-15T05:27:36.517 回答