iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >VB.NET指针怎么应用
  • 717
分享到

VB.NET指针怎么应用

2023-06-17 20:06:47 717人浏览 独家记忆
摘要

这篇文章主要介绍了VB.NET指针怎么应用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。VB里使用指针不象C里那样灵活,用指针处理数据时都需要用CopyMemory将数据在指

这篇文章主要介绍了VB.NET指针怎么应用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

VB里使用指针不象C里那样灵活,用指针处理数据时都需要用CopyMemory将数据在指针和VB能够处理的变量之间来回拷贝,这需要很大的额外开销。因此不是所有C里的指针操作都可以移值到VB里来,我们只应在需要的时候才在VB里使用指针。

1、VB.NET指针应用动态内存分配:完全不可能、可能但不可行,VB标准

在C和c++里频繁使用指针的一个重要原因是需要使用动态内存分配,用Malloc或New来从堆栈里动态分配内存,并得到指向这个内存的指针。在VB里我们也可以自己用api来实现动态分配内存,并且实现象C里的指针链表

但我们不可能象C那样直接用指针来访问这样动态分配的内存,访问时我们必须用CopyMemory将数据拷贝到VB的变量内,大量的使用这种技术必然会降低效率,以至于要象C那样用指针来使用动态内存根本就没有可行性。要象C、PASCAL那样实现动态数据结构,在VB里还是应该老老实实用对象技术来实现。

本文配套代码中的LinkedList里有完全用指针实现的链表,它是使用HeapAlloc从堆栈中动态分配内存,另有一个调用FindFirstUrlCacheEntry这个API来操作IE的Cache的小程序IECache,它使用了VirtualAlloc来动态分配内存。但实际上这都不是必须的,VB已经为我们提供了标准的动态内存分配的方法,那就是:对象、字符串和字节数组限于篇幅,关于对象的技术这里不讲,LinkedList的源代码里有用对象实现的链表,你可以参考。字符串可以用Space$函数来动态分配,VB的文档里就有详细的说明。关于字节数组,这里要讲讲,它非常有用。我们可用Redim来动态改变它的大小,并将指向它***个元素的指针传给需要指针的API,如下:

dim ab() As Byte , ret As long  '传递Null值API会返回它所需要的缓冲区的长度。  ret = SomeApiNeedsBuffer(vbNullString)  '动态分配足够大小的内存缓冲区  ReDim ab(ret) As Byte  '再次把指针传给API,此时传字节数组***个元素的指针。  SomeApiNeedsBuffer(ByVal VarPtr(ab(1)))

在本文配套程序中的IECache中,我也提供了用字节数组来实现动态分配缓冲区的版本,比用VirtualAlloc来实现更安全更简单。

2、VB.NET指针应用突破限制

下面是一个突破VB类型检查来实现特殊功能的经典应用,出自Bruce Mckinney的《HardCore Visual Basic》一书。

将一个Long长整数的低16位作为Interger型提取出来,

'标准的方法,也是高效的方法,但不容易理解。  Function LoWord(ByVal dw As Long) As Integer  If dw And &H8000& Then  LoWord = dw Or &HFFFF0000  Else  LoWord = dw And &HFFFF&  End If  End Function   '用指针来做效率虽不高,但思想清楚。  Function LoWord(ByVal dw As Long) As Integer  CopyMemory ByVal VarPtr(LoWord), ByVal VarPtr(dw), 2  End Function

感谢你能够认真阅读完这篇文章,希望小编分享的“VB.net指针怎么应用”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: VB.NET指针怎么应用

本文链接: https://www.lsjlt.com/news/292619.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • VB.NET指针怎么应用
    这篇文章主要介绍了VB.NET指针怎么应用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。VB里使用指针不象C里那样灵活,用指针处理数据时都需要用CopyMemory将数据在指...
    99+
    2023-06-17
  • VB.NET中指针的作用是什么
    VB.NET中指针的作用是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在生活中我们所看到的指针是真实的,可是在我们的编程中所谓的指针是感念性的,抽象的,让人很难理解的。这...
    99+
    2023-06-17
  • C++指针怎么应用
    本篇内容介绍了“C++指针怎么应用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!成员函数指针的声明一个成员函数指针包括成员函数的返回类型,后...
    99+
    2023-06-17
  • C语言数组指针和指针数组怎么应用
    这篇文章主要介绍“C语言数组指针和指针数组怎么应用”,在日常操作中,相信很多人在C语言数组指针和指针数组怎么应用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言数组指针和指针数组怎么应用”的疑惑有所帮助!...
    99+
    2023-06-30
  • Golang函数的指针数组、数组指针怎么应用
    这篇文章主要介绍了Golang函数的指针数组、数组指针怎么应用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Golang函数的指针数组、数组指针怎么应用文章都会有所收获,下面我们一起来看看吧。Golang指针数...
    99+
    2023-07-06
  • 如何改写VB.NET内存指针
    这篇文章主要为大家展示了“如何改写VB.NET内存指针”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何改写VB.NET内存指针”这篇文章吧。近日心血来潮,花巨资购进多普达智能手机一台, 系统为...
    99+
    2023-06-17
  • C++函数指针,对象指针,this指针,指向类静态怎么用
    这篇文章主要介绍了C++函数指针,对象指针,this指针,指向类静态怎么用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C++函数指针,对象指针,this指针,指向类静态怎么用文章都会有所收获,下面我们一起来看...
    99+
    2023-06-29
  • C++的二级指针和指针怎么引用
    本篇内容主要讲解“C++的二级指针和指针怎么引用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++的二级指针和指针怎么引用”吧!目的:形参指针改变实参指针所指向的对象(即地址)举例:point...
    99+
    2023-06-29
  • golang指针怎么用
    Go 是一门支持指针的编程语言。指针在 Go 编程中使用非常广泛,因为很多操作都需要直接操作内存地址。学习如何正确使用指针可以让代码更加高效,并且在一些特定的场景下可以方便地解决问题。什么是指针指针是一种特殊的变量,其存储的是一个地址。这个...
    99+
    2023-05-15
  • 怎么用C++实现野指针和悬空指针
    本篇内容主要讲解“怎么用C++实现野指针和悬空指针”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用C++实现野指针和悬空指针”吧!目录一、野指针二、悬空指针1 情况一2 情况二3 情况三野指...
    99+
    2023-06-20
  • golang指针怎么引用
    在Go语言中,可以通过在变量前面加上"&"符号来获取该变量的指针。例如:gopackage mainimport "fmt...
    99+
    2023-10-23
    golang
  • 怎么在C++中使用this指针和空指针
    本篇文章为大家展示了怎么在C++中使用this指针和空指针,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。C++通过提供特殊的对象指针,this指针,解决上述问题。this指针指向被调用的成员函数所属...
    99+
    2023-06-14
  • Golang函数的指针数组、数组指针的应用技巧
    随着Golang语言的不断发展,函数的指针数组和数组指针也成为了Golang编程中的重要组成部分。在本篇文章中,我们将会探讨Golang函数的指针数组和数组指针的应用技巧,并为大家提供一些实用的示例代码和相关的解释。Golang指针数组的基...
    99+
    2023-05-16
    Golang函数 指针数组 数组指针
  • C++中指针怎么使用
    这篇文章给大家分享的是有关C++中指针怎么使用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。指针为什么要有类型是为了指针运算和取值。当使用指针取值的时候需要知道怎么取值,比如按照多少个字节去取值,这是需要确定才能...
    99+
    2023-06-29
  • VB.NET窗体指针如何在项目中传递
    这篇文章给大家分享的是有关VB.NET窗体指针如何在项目中传递的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。VB.NET窗体指针在项目中的传递除了把窗体实例全局化以外,你还可以把VB.NET窗体指针保存在变量中传...
    99+
    2023-06-17
  • C语言指针怎么用
    这篇文章主要为大家展示了“C语言指针怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“C语言指针怎么用”这篇文章吧。一、字符指针在指针的类型中我们知道有一种指针类型为字符指针 char* 。思...
    99+
    2023-06-25
  • C语言中二级指针与链表怎么应用
    本文小编为大家详细介绍“C语言中二级指针与链表怎么应用”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言中二级指针与链表怎么应用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。二级指针讲解简述:其实就是一个指针...
    99+
    2023-07-02
  • C语言中怎么使用指针函数和函数指针
    本篇内容介绍了“C语言中怎么使用指针函数和函数指针”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、指针函数当一个函数声明其返回值为一个指针...
    99+
    2023-06-16
  • C++ 函数指针的应用场景
    函数指针在 c++++ 中指的是指向函数内存地址的变量。它常用于回调函数、动态绑定和事件处理等场景。举例来说,在排序算法中,我们可以使用函数指针来实现不同的比较函数,从而灵活地选择排序算...
    99+
    2024-04-18
    c++ 函数指针 typedef
  • C语言深入分析数组指针和指针数组的应用
    目录一、数组类型二、定义数据类型三、数组指针四、指针数组五、小结一、数组类型 C语言中的数组有自己特定的类型数组的类型由元素类型和数组大小共同决定 例:int array[5] 的类...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作