VB6到VB.NET CopyMemory

时间:2017-07-15 04:40:13

标签: vb.net vb6 copymemory

嘿所有我试图将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 = " "

我不确定如何修复此错误...

1 个答案:

答案 0 :(得分:0)

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