嘿,我正在尝试将一点点VB6转换为.NET,并且我得到了以下错误:
System.InvalidCastException类型的未处理异常发生在Microsoft.VisualBasic.dll中 附加信息:从字符串“”到键入'Integer‘的转换无效。
下面的.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 = " "我不知道该怎么纠正这个错误.
发布于 2017-07-15 05:27:36
问题在于,您要传递一个字符串作为CopyMemory函数的第一个参数。CopyMemory函数需要一个指针作为第一个参数,因此代码试图将字符串参数转换为整数。据我所知,指针的唯一有效值是整数值或十六进制值。
https://stackoverflow.com/questions/45114541
复制相似问题