嘿所有我试图将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 = " "
我不确定如何修复此错误...
答案 0 :(得分:0)
问题似乎是您将字符串作为CopyMemory
函数的第一个参数传递。 CopyMemory
函数需要将指针作为第一个参数,因此代码尝试将字符串参数转换为整数。据我所知,指针的唯一有效值是整数值或十六进制值。