首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VB6 to VB.NET CopyMemory

VB6 to VB.NET CopyMemory
EN

Stack Overflow用户
提问于 2017-07-15 04:40:13
回答 1查看 620关注 0票数 0

嘿,我正在尝试将一点点VB6转换为.NET,并且我得到了以下错误:

System.InvalidCastException类型的未处理异常发生在Microsoft.VisualBasic.dll中 附加信息:从字符串“”到键入'Integer‘的转换无效。

下面的.net代码是它陷入CopyMemory(str_Renamed,ptr,count)的位置

代码语言:javascript
复制
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

这些变量的价值如下:

代码语言:javascript
复制
count       = 4
ptr         = 268978536
str_Renamed = " "

我不知道该怎么纠正这个错误.

EN

回答 1

Stack Overflow用户

发布于 2017-07-15 05:27:36

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45114541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档