精华内容
下载资源
问答
  • 前言:我们都知道,在VB中,可以使用VarPtr、StrPtr和ObjPtr来获得变量的地址,它们之间有什么区别和联系呢?许多资深的VB人员告诉我们,最好将API函数声明中ByVal lpstr As String改为ByVal lpStr As Long,这又...

    前言:我们都知道,在VB中,可以使用VarPtrStrPtrObjPtr来获得变量的地址,它们之间有什么区别和联系呢?许多资深的VB人员告诉我们,最好将API函数声明中ByVal lpstr As String改为ByVal lpStr As Long,这又是为什么呢?如何正确地利用这些函数向API传递指针呢?

        首先,我们来了解一下VB中的变量及其定义。

        也许你会说我多此一举,如此简单的问题,还需要我来解释吗?

        其实不然。

        现在假设有以下语句:

        Dim i As Long

        它表示什么呢?它表示我们定义了一个名称为a且类型为Long的变量。然而对于内存来说,即没有名称,也没有类型,只有用数字数字表示的地址和连续所占用地址的数量。由于Long为4个Byte大小,因此,我们可以把这条语句看作程序对系统的内存管理器说,俺想在地址a上使用大小为4Byte这一段连续地址,然后准备在这段地址里放点东西,当然,俺的东西不会超过4Byte的。

        再看一下这条语句:

        Dim s As String

        它又表示什么呢?直白地说,它表示我们定义了一个名称为s且类型为String的变量。现在麻烦的是,String的大小是不确定的。如果程序还像上一条语句一样直接告诉系统的内存管理器说:喂,俺想在地址s上放点东西。内存管理器听到后说:又来放东西啊,多大啊?程序说:不知道。内存管理器说:不知道你来干啥啊,我乍给你准备啊?简直是胡闹,一边去,其他人正等呢。这下程序犯了愁,问题不解决,没法给设计人员交代啊。想了想,又回去跟内存管理器说:这样吧,我在地址s上做一个标志吧,只有4Byte大小(32位操作系统的最大寻址能力),到时东西带来了,再将这个标志改为东西实际存放的地址,好吗?内存管理器说:这就对啦,别忘了把东西带来啊。

        通过上述两条语句,我们可以了解到,变量定义实际上表示两个含义,一个是变量名称,一个是变量的值,它们都会占用空间的,只不过有些变量由于个子比较小,所以变量名称和变量值放在一块就行,如变量i,而有些变量由于块头比较大或不确定,需要分别进行存放,如变量s。

        现在,我们站在内存管理器的角度来理解一下,假设变量a的地址为&H0013FBD0,a的值为100,那么很显然,从地址&H0013FBD0开始到&H0013FBD3这4个byte的空间里,存放的是100;而假设变量s的地址为&H0013FC50,s的值为“100”,那么,从地址&H0013FC50到&H0013FC53这4个Byte的空间里,存放的是指向实际存放“100”的值的地址。

        摘自:深入了解VB中的变量和指针

    相关参考


    VB中的指针技术

    一个VB数组指针类

    VB Environ系统环境变量函数大全

    变量、常数和数据类型及过程概述

    VB小技巧:字符变量中双引号的输入

    深入了解VB中的变量和指针


    展开全文
  • 深入了解VB中变量和指针(一)

    千次阅读 2009-05-14 19:56:00
    前言:我们都知道,在VB中,可以使用VarPtr、StrPtr和ObjPtr来获得变量的地址,它们之间有什么区别和联系呢?许多资深的VB人员告诉我们,最好将API函数声明中ByVal lpstr As String改为ByVal lpStr As Long,这又...

        前言:我们都知道,在VB中,可以使用VarPtr、StrPtr和ObjPtr来获得变量的地址,它们之间有什么区别和联系呢?许多资深的VB人员告诉我们,最好将API函数声明中ByVal lpstr As String改为ByVal lpStr As Long,这又是为什么呢?如何正确地利用这些函数向API传递指针呢?
        首先,我们来了解一下VB中的变量及其定义。
        也许你会说我多此一举,如此简单的问题,还需要我来解释吗?
        其实不然。
        现在假设有以下语句:
        Dim i As Long
        它表示什么呢?它表示我们定义了一个名称为a且类型为Long的变量。然而对于内存来说,即没有名称,也没有类型,只有用数字数字表示的地址和连续所占用地址的数量。由于Long为4个Byte大小,因此,我们可以把这条语句看作程序对系统的内存管理器说,俺想在地址a上使用大小为4Byte这一段连续地址,然后准备在这段地址里放点东西,当然,俺的东西不会超过4Byte的。
        再看一下这条语句:
        Dim s As String
        它又表示什么呢?直白地说,它表示我们定义了一个名称为s且类型为String的变量。现在麻烦的是,String的大小是不确定的。如果程序还像上一条语句一样直接告诉系统的内存管理器说:喂,俺想在地址s上放点东西。内存管理器听到后说:又来放东西啊,多大啊?程序说:不知道。内存管理器说:不知道你来干啥啊,我乍给你准备啊?简直是胡闹,一边去,其他人正等呢。这下程序犯了愁,问题不解决,没法给设计人员交代啊。想了想,又回去跟内存管理器说:这样吧,我在地址s上做一个标志吧,只有4Byte大小(32位操作系统的最大寻址能力),到时东西带来了,再将这个标志改为东西实际存放的地址,好吗?内存管理器说:这就对啦,别忘了把东西带来啊。
        通过上述两条语句,我们可以了解到,变量定义实际上表示两个含义,一个是变量名称,一个是变量的值,它们都会占用空间的,只不过有些变量由于个子比较小,所以变量名称和变量值放在一块就行,如变量i,而有些变量由于块头比较大或不确定,需要分别进行存放,如变量s。
        现在,我们站在内存管理器的角度来理解一下,假设变量a的地址为&H0013FBD0,a的值为100,那么很显然,从地址&H0013FBD0开始到&H0013FBD3这4个byte的空间里,存放的是100;而假设变量s的地址为&H0013FC50,s的值为“100”,那么,从地址&H0013FC50到&H0013FC53这4个Byte的空间里,存放的是指向实际存放“100”的值的地址。

    展开全文
  • vb &什么意思

    2013-09-09 17:03:00
    vb中是连接字符串的作用,相当于c#中的+,但又大于+ VB字符串连接符有 + 和 & 区别 + 号的两个目都必须为字符串,例如 A+B,A、B必须都字符中变量,否则产生一个Exctption。而 & 则可直接把变更的内容...

    & 在vb中是连接字符串的作用,相当于c#中的+,但又大于+

    VB字符串连接符有 + 和 &
    区别是 + 号的两个目都必须为字符串,例如 A+B,A、B必须都是字符中变量,否则产生一个Exctption。而 & 则可直接把变更的内容用tostring方法转换,例如"aString" & 1234,结果就变成aString1234

    转载于:https://www.cnblogs.com/Jeffli91/p/vb-%e5%ad%97%e7%ac%a6.html

    展开全文
  • VB课程设计俄罗斯方块

    热门讨论 2011-02-25 10:46:55
    则消除这行的方块,并且使上面的方块自由下落,其中,方块向下的速度有时钟控件控制的,在游戏,用户也可以使用向下键加快下落速度,定义一个变量,对消除的函数进行记录,最后就可以得出用户的分数,用if 语句...
  • 所以声明API的时候一定要byval,大家知道空着不写就是默认byref ‘下面还有几处不该传址的参数,只要搞清楚API函数要的到底是什么值才可以确定到底传值还是传址,API浏览器仅能供参考,还是要仔细阅读MSDN MyStartAddr =...
  • VB.NET高级编程(第二版)

    热门讨论 2008-07-18 15:47:58
    变量和类型 4.l 值类型和引用类型 4.2 值类型(结构) 4.3 显式转换 4.3.1 Option Strict、Option Explicit和Option Compare 4.3.2 执行显式转换 4.4 引用类型(类) 4.4.1 Object类...
  •  如果有大量的word文档需要修改某个术语或者什么固定的语句,逐一打开件麻烦事,利用宏可以很很快完成这项任务,而且不会错漏。对例一修改一下就可以完成这个任务。 例二:全文查找替换。 Private Sub ...
  • MYSQL中文手册

    2013-03-11 21:21:34
    1.8.1. MySQL遵从的标准是什么 1.8.2. 选择SQL模式 1.8.3. 在ANSI模式下运行MySQL 1.8.4. MySQL对标准SQL的扩展 1.8.5. MySQL与标准SQL的差别 1.8.6. MySQL处理约束的方式 2. 安装MySQL 2.1. 一般安装问题 ...
  • 1.8.1. MySQL遵从的标准是什么 1.8.2. 选择SQL模式 1.8.3. 在ANSI模式下运行MySQL 1.8.4. MySQL对标准SQL的扩展 1.8.5. MySQL与标准SQL的差别 1.8.6. MySQL处理约束的方式 2. 安装MySQL 2.1. 一般安装问题 2.1.1. ...
  • Dim Temp%的意思

    千次阅读 2013-04-26 15:36:11
    在声明变量时使用类型后缀一个即快捷又方便的方法,而且类型后缀在变量加入了关于变量类型的信息。 temp%,后缀%integer类型的后缀 同样,Dim aa As string 可以写成:dim aa$

    最近在看vb程序,见到程序里面有Dim Temp%这一句,没见过,不知道什么意思,百度了一下

    Dim Temp% 就等价于 dim temp as integer
    在声明变量时使用类型后缀是一个即快捷又方便的方法,而且类型后缀在变量名中加入了关于变量类型的信息。
    temp%,后缀%是integer类型的后缀

    同样,Dim aa As string 可以写成:dim aa$


    %整形
    &长整形
    @货币型
    !单精度浮点型
    #双精度浮点型
    $字符串

    展开全文
  • 4.C#的委托是什么?事件是不是一种委托? 答 : 委托可以把一个方法作为参数代入另一个方法。 委托可以理解为指向一个函数的引用。 是,是一种特殊的委托 5.override与重载的区别 答 : override 与重载的...
  • 在一小时内学会 C#(txt版本)

    热门讨论 2009-08-19 18:09:37
    4. C# 没有全局变量或全局函数,取而代之的通过静态函数和静态变量完成的。 数据类型 所有 C# 的类型都从 object 类继承的。有两种数据类型: 1. 基本/内建类型 2. 用户定义类型 以下 C# 内建类型的...
  • C#微软培训教材(高清PDF)

    千次下载 热门讨论 2009-07-30 08:51:17
    18.2 在 C #代码调用 C++和 VB 编写的组件 .240 18.3 版 本 控 制 .249 18.4 代 码 优 化 .252 18.5 小 结 .254 第五部分 附 录 .255 附录 A 关 键 字.255 附录 B 错 误 码.256 附录 C .Net 名字空间...
  • C#微软培训资料

    2014-01-22 14:10:17
    18.2 在 C #代码调用 C++和 VB 编写的组件 .240 18.3 版 本 控 制 .249 18.4 代 码 优 化 .252 18.5 小 结 .254 第五部分 附 录 .255 附录 A 关 键 字.255 附录 B 错 误 码.256 附录 C .Net 名字空间...
  • 2、用习惯VB的人很随便使用变量但是不申明,这在C#默认情况下不允许的; 3、在向函数传递参数的时候要用圆括号:Response.Write "aa";不允许的。 我说的这点几乎称不上在说一种语言,一种语言的学习不仅仅需要...
  • 另外还可识别出EXE文件什么语言编写的VC++、Delphi、VB或Delphi等。 支持文件夹批量扫描 我们用PEID对easymail.exe进行扫描 找到壳的类型了 UPX 0.89.6 - 1.02 / 1.05 - 1.24 -> Markus & Laszlo 说明...
  • asp.net知识库

    2015-06-18 08:45:45
    利用反射来查看对象的私有变量 关于反射创建类型实例的两种方法 ASP.Net应用程序的多进程模型 NET委托:一个C#睡前故事 [推荐] - [原创] Microsoft .NET策略及框架概述 卸载Class? Web Form 窗体 如何实现web...
  • 9.12 vb中的lambda表达式 387 9.13 小结 389 第10章 ado.net和linq 391 10.1 ado.net的体系结构 392 10.2 ado.net的基本功能 393 10.2.1 ado.net的常见任务 393 10.2.2 ado.net的基本名称空间和类 398 ...
  • 9.12 vb中的lambda表达式 387 9.13 小结 389 第10章 ado.net和linq 391 10.1 ado.net的体系结构 392 10.2 ado.net的基本功能 393 10.2.1 ado.net的常见任务 393 10.2.2 ado.net的基本名称空间和类...
  • 1.8.1. MySQL遵从的标准是什么 1.8.2. 选择SQL模式 1.8.3. 在ANSI模式下运行MySQL 1.8.4. MySQL对标准SQL的扩展 1.8.5. MySQL与标准SQL的差别 1.8.6. MySQL处理约束的方式 2. 安装MySQL 2.1. 一般安装问题 2.1.1. ...

空空如也

空空如也

1
收藏数 20
精华内容 8
关键字:

vb中string是什么变量