精华内容
下载资源
问答
  • 然而这个问题的研究让我对VB6中的指针有了更清楚地认识,也彻底弄清楚了字符串(变长)在VB6中的存储格式。Sub main() '构建一个整型数组 Dim a(7) As Integer a(0) = 8 '为字符串数据之前的四个字节,存储字符串...

        这在c语言中是一个自然而然的问题,然而在VB6中,因为微软有意隐藏了指针,这个操作便变得困难重重。然而这个问题的研究让我对VB6中的指针有了更清楚地认识,也彻底弄清楚了(变长)字符串在VB6中的存储格式。

    Option Explicit
    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
    
    Sub main()
        '构建一个整型数组
        Dim a(7) As Integer
        a(0) = 8    '为字符串数据之前的四个字节,存储字符串的长度
        a(1) = 0
        a(2) = 66   'B
        a(3) = 83   'S
        a(4) = 84   'T
        a(5) = 82   'R
        a(6) = 0    '字符串结束标志NULL UNICODE
        
        Dim s As String
        CopyMemory ByVal VarPtr(s), VarPtr(a(2)), 4
        Debug.Print s
    End Sub
    
    
    '执行结果为BSTR
    

          来一张图,让操作更直观一些。


        经过这个实验,让我感到在VB6中,虽然指针操作不像C中那么方便,但是操作原理和C还是一样的。

    展开全文
  • vb编程语言怎么通过获取一个变量的值去算它在数组下标的integer值?获取下标integer值的代码怎么思路?
  • 请问VB6.0中的基本类型系统的定义情况是怎么样的?为什么string可以转换为integer
  • Option Explicit Private Declare Sub CopyMemory Lib "kernel32"...'在过程中声明的变量,都建立在栈上,先声明的变量在高地址,后声明的变量在低地址,而字符串中的字节排在前面的在低地址...
    Option Explicit
    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
    
    '在过程中声明的变量,都建立在栈上,先声明的变量在高地址,后声明的变量在低地址,而字符串中的字节排在前面的在低地址,排在后面的在高地址,恰好与这相反
    Sub main()
        Dim a4 As Integer
        Dim a3 As Integer
        Dim a2 As Integer
        Dim a1 As Integer
        Dim a0 As Integer
        Dim x As Integer
        Dim y As Integer
        
        Dim s As String
        
        '生成字符串的长度
        y = 8
        x = 0
        '在数组中生成"BSTR"字符串,并以0结尾
        CopyMemory a0, 66, 2
        CopyMemory a1, 83, 2
        CopyMemory a2, 84, 2
        CopyMemory a3, 82, 2
        CopyMemory a4, 0, 2
        'a0 = 66    '上面五句也可以写成这样,但是缺少了指针操作的味道
        'a1 = 83
        'a2 = 84
        'a3 = 82
        'a4 = 0
        
        Dim ps As Long
        ps = VarPtr(s)  '获取字符串变量的地址
        Dim pi As Long
        pi = VarPtr(a0) '获取字符串存储位置的起始地址
        CopyMemory ByVal ps, pi, 4 '把存储字符串的开始地址存入字符串变量的地址中
        'CopyMemory ByVal VarPtr(s), VarPtr(a0), 4 '上面五句也可以合并成本句
        Debug.Print s
    
    End Sub

        源代码中的注释已经说明问题了。

        写完代码,再去看书,发现书上说的已经足够清楚。愚笨的只是自己,算是给“纸上得来终觉浅,绝知此事要躬行。”做注吧。

    展开全文
  • VB.NET Unknown reply on integer response ...最近在项目加入了redis,不过遇到了很多redis异常错误,主要原因在vb.net多线程Redis操作时候出现异常,如 最多就是Unknown reply on integer response:

    VB.NET Unknown reply on integer response

    VB.NET redis异常及ServiceStack.Redis对多线程的支持


    最近在项目中加入了redis,不过遇到了很多redis的异常错误,主要原因在vb.net多线程中Redis操作的时候出现的异常,如 最多的就是Unknown reply on integer response: 4211, sPort: 1620, LastCommand:

    这个可能是对ServiceStack.Redis对多线程的支持的不理解造成的


    不由怀疑

    这玩意到底支持多线程不哦...

    然后详细看了下ServiceStack.Redis的文档

    然后发现一个惊天的秘密:

    这坑爹的ServiceStack.Redis不支持我们传统认为的线程安全啊


    ServiceStack.Redis对多线程采用的是连接池

    也就是说:

    每一个线程可以从连接池里获取一个连接供本线程使用

    在使用完毕过后还回给连接池

    这样来保证每一个线程使用的Redis连接都是独立的而不会互相干扰

    这就是ServiceStack.Redis所谓的ThreadSafe Access

    ServiceStack.Redis就是这样来保证线程安全的...


    坑爹呢这是...

    我们传统意义的线程安全可是多个线程并发访问一个对象啊

    而不是多个线程访问不同的对象啊...

    都怪我学艺不精啊...

    竟然不知道还有这种ThreadSafe Access啊...




    展开全文
  • VB中的排序问题 15个

    2017-07-28 20:20:00
    首次接触VB,以下就先进行VB中的排序问题 Dim a As Integer Dim b As Integer Dim c As Integer Dim d As Integer Dim e As Integer Dim f As Integer Dim g As Integer Dim h As Intege...

      首次接触VB,以下就先进行VB中的排序问题

     

     

    微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑                  Dim a As Integer微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑微笑

    Dim b As Integer
    Dim c As Integer
    Dim d As Integer
    Dim e As Integer
    Dim f As Integer
    Dim g As Integer
    Dim h As Integer
    Dim i As Integer
    Dim j As Integer
    Dim k As Integer
    Dim l As Integer
    Dim m As Integer
    Dim n As Integer
    Dim o As Integer


    Private Sub Command1_Click()


    Cls
    Me.Font.Size = 50


    a = Int(Rnd * 1000)
    b = Int(Rnd * 1000)
    c = Int(Rnd * 1000)
    d = Int(Rnd * 1000)
    e = Int(Rnd * 1000)
    f = Int(Rnd * 1000)
    g = Int(Rnd * 1000)
    h = Int(Rnd * 1000)
    i = Int(Rnd * 1000)
    j = Int(Rnd * 1000)
    k = Int(Rnd * 1000)
    l = Int(Rnd * 1000)
    m = Int(Rnd * 1000)
    n = Int(Rnd * 1000)
    o = Int(Rnd * 1000)
    If a < b Then
     Call swap(a, b)
    End If
    If a < c Then
     Call swap(a, c)
    End If
    If a < d Then
     Call swap(a, d)
    End If
    If a < e Then
     Call swap(a, e)
    End If
    If a < f Then
     Call swap(a, f)
    End If
    If a < g Then
    Call swap(a, g)
    End If
    If a < h Then
    Call swap(a, b)
    End If
    If a < i Then
    Call swap(a, h)
    End If
    If a < j Then
    Call swap(a, j)
    End If
    If a < k Then
    Call swap(a, k)
    End If
    If a < l Then
    Call swap(a, l)
    End If
    If a < m Then
    Call swap(a, m)
    End If
    If a < n Then
    Call swap(a, n)
    End If
    If a < o Then
    Call swap(a, o)
    End If
    If b < c Then
    Call swap(b, c)
    End If
    If b < d Then
    Call swap(b, d)
    End If
    If b < e Then
    Call swap(b, e)
    End If
    If b < f Then
    Call swap(b, f)
    End If
    If b < g Then
    Call swap(b, g)
    End If
    If b < h Then
    Call swap(b, h)
    End If
    If b < i Then
    Call swap(b, i)
    End If
    If b < j Then
    Call swap(b, j)
    End If
    If b < k Then
    Call swap(b, k)
    End If
    If b < l Then
    Call swap(b, l)
    End If
    If b < m Then
    Call swap(b, m)
    End If
    If b < n Then
    Call swap(b, m)
    End If
    If b < o Then
    Call swap(a, o)
    End If
    If c < d Then
    Call swap(c, d)
    End If
    If c < e Then
    Call swap(c, e)
    End If
    If c < f Then
    Call swap(c, f)
    End If
    If c < g Then
    Call swap(c, g)
    End If
    If c < h Then
    Call swap(c, h)
    End If
    If c < i Then
    Call swap(c, i)
    End If
    If c < j Then
    Call swap(c, j)
    End If
    If c < k Then
    Call swap(c, k)
    End If
    If c < l Then
    Call swap(c, l)
    End If
    If c < m Then
    Call swap(c, m)
    End If
    If c < n Then
    Call swap(c, n)
    End If
    If c < o Then
    Call swap(c, o)
    End If
    If d < e Then
    Call swap(d, e)
    End If
    If d < f Then
    Call swap(d, f)
    End If
    If d < g Then
    Call swap(d, g)
    End If
    If d < h Then
    Call swap(d, h)
    End If
    If d < i Then
    Call swap(d, i)
    End If
    If d < j Then
    Call swap(d, j)
    End If
    If d < k Then
    Call swap(d, k)
    End If
    If d < l Then
    Call swap(d, l)
    End If
    If d < m Then
    Call swap(d, m)
    End If
    If d < n Then
    Call swap(d, n)
    End If
    If d < o Then
    Call swap(d, o)
    End If
    If e < f Then
    Call swap(e, f)
    End If
    If e < g Then
    Call swap(e, g)
    End If


    If e < h Then
    Call swap(e, h)
    End If


    If e < i Then
    Call swap(e, i)
    End If


    If e < j Then
    Call swap(e, j)
    End If


    If e < k Then
    Call swap(e, k)
    End If


    If e < l Then
    Call swap(e, l)
    End If


    If e < m Then
    Call swap(e, m)
    End If


    If e < n Then
    Call swap(e, n)
    End If


    If e < o Then
    Call swap(e, o)
    End If
    If f < g Then
    Call swap(f, g)
    End If


    If f < h Then
    Call swap(f, h)
    End If
    If f < i Then
    Call swap(f, i)
    End If
    If f < j Then
    Call swap(f, j)
    End If
    If f < k Then
    Call swap(f, k)
    End If
    If f < l Then
    Call swap(f, l)
    End If
    If f < m Then
    Call swap(f, m)
    End If
    If f < n Then
    Call swap(f, n)
    End If
    If f < o Then
    Call swap(f, o)
    End If


    If g < h Then
    Call swap(g, h)
    End If
    If g < i Then
    Call swap(g, i)
    End If
    If g < j Then
    Call swap(g, j)
    End If
    If g < k Then
    Call swap(g, k)
    End If
    If g < l Then
    Call swap(g, l)
    End If
    If g < m Then
    Call swap(g, m)
    End If
    If g < n Then
    Call swap(g, n)
    End If
    If g < o Then
    Call swap(g, o)
    End If
    If h < i Then
    Call swap(h, i)
    End If


    If h < j Then
    Call swap(h, j)
    End If


    If h < k Then
    Call swap(h, k)
    End If


    If h < l Then
    Call swap(h, l)
    End If


    If h < m Then
    Call swap(h, m)
    End If




    If h < n Then
    Call swap(h, n)
    End If


    If h < o Then
    Call swap(h, o)
    End If
    If i < j Then
    Call swap(i, j)
    End If


    If i < k Then
    Call swap(i, k)
    End If
    If i < l Then
    Call swap(i, l)
    End If
    If i < m Then
    Call swap(i, m)
    End If
    If i < n Then
    Call swap(i, n)
    End If


    If i < o Then
    Call swap(i, o)
    End If
    If j < k Then
    Call swap(j, k)
    End If
    If j < l Then
    Call swap(j, l)
    End If
    If j < m Then
    Call swap(j, m)
    End If
    If j < n Then
    Call swap(j, n)
    End If
    If j < o Then
    Call swap(j, o)
    End If
    If k < l Then
    Call swap(k, l)
    End If
    If k < m Then
    Call swap(k, m)
    End If
    If k < n Then
    Call swap(k, n)
    End If
    If k < o Then
    Call swap(k, o)
    End If
    If l < m Then
    Call swap(l, m)
    End If


    If l < n Then
    Call swap(l, n)
    End If


    If l < o Then
    Call swap(l, o)
    End If
    If m < o Then
    Call swap(m, o)
    End If
    If m < n Then
    Call swap(m, n)
    End If
    If m < o Then
    Call swap(m, o)
    End If


    If n < o Then
    Call swap(n, o)
    End If




    Print a & "," & b & "," & c & "," & d & ", " & e & "," & f & "," & g & "," & h & "," & i & "," & j & "," & k & "," & l & "," & m & ", " & n & "," & o
    End Sub




    Private Sub swap(ByVal x As Integer, ByVal y As Integer)
    Dim temp As Integer
    If x < y Then
    temp = x
     x = y
     y = temp
     End If

      做完这个编程我的手已经残废再见,但毕竟这是我做的第一份编程,感觉苦点累点也值得奋斗。接触到VB这门课,我感觉自己不再对程序员这样的动物陌生了,慢慢的了解了他们的生活,就是把自己想要完毕的事变成字符敲到电脑上汇成编程生气
                                     

     

     

     

                                                   

     

     

                                                  马妮娜原创生气

    转载于:https://www.cnblogs.com/lytwajue/p/7252437.html

    展开全文
  • vb中的除法

    2019-04-17 16:20:00
    “/”:在Integer类型,如果商带小数,则把小数部分以0.5为界限,小数部分大于0.5,则返回整数部分+1;如果小数部分小于0.5,则直接返回整数部分。“Mod”:这个是求模运算,返回余数。 转载于:...
  • vb中的错误处理

    2010-09-15 08:31:00
    vb中的错误处理 VB有一个隐藏函数ERL()。这个就是返回最近的错误行的。不过这个函数的使用是有条件的,即每一条代码都要有行号。如 : Public Sub ErlTest() ON Error Goto ErrHandle Dim A as Integer Public ...
  • VB.NET中的除法运算符有两个:/(浮点除法)、\(整数除法) C#中的除法运算符只有一个:/(除法) VB.NET中的除法运算符与C#中的除法运算符存在很大的差异,使用时注意区分。   关于VB.NET中的除法运算符的介绍...
  • MsgBox()函数MsgBox()函数:VB中的函数;功能:可实现弹出窗口。作用:在对话框中显示消息,等待用户单击按钮,并返回一个 Integer 告诉用户单击哪一个按钮。语法:MsgBox(prompt[, buttons] [, title] [, helpfile,...
  • 引子:昨天在用vb调用vc写的dll文件的时候,变量的使用上出现了问题,...我们知道每种编程语言的数据类型都不尽相同,比如说C中的int和VB中的integer,看名字它们都是整型,但是它们占有的内存单元却是完全不同的.VB...
  • 实验名称:VB中数字交换 启动电脑桌面上VB软件。 在工具箱窗口找到command button图标,单击图标并在窗体适当位置创建,在属性窗口中找到caption并把其后面改为“交换”。 在窗体中双击“交换”,...
  • VB中数字交换

    2016-03-26 09:59:28
    1.首先,在左侧工具栏找到command button图标,并在适当位置处创建。 2.在属性窗口找到capition并在他后面将名字改为“交换”。 3.在窗体双击“交换”,并在弹出对话框输入以下内容 Cls Dim b As ...
  • VB中的数据类型

    2019-10-05 03:09:12
    1.Boolean 布尔型,这种类型,只有真、假(即...3.Integer 整型 它占用两个字节,通常用%来表示 ,例a%;它占用2个字节(C语言中为4个字节),它范围是0----32768/32767 4.Long 长整型 它占用4个字节,它简写符...
  • C中的数据类型在VB中的声明 ATOMByVal variable As Integer结果为 Integer 类型的表达式 BOOLByVal variable As Boolean 结果为 Lon...
  • VB中Static含义

    千次阅读 2018-12-27 20:56:03
    直接上程序,附运行结果,...Dim A As Integer A= A + 1 Print A End Sub 静态变量: Private Sub Command2_Click() Static B As Integer B= B + 1 Print B End Sub 分别交互点击Command1和Command2,从...
  • vb中的十六进制

    2016-05-19 17:41:56
    Private Sub Command1_Click() ...Dim a As Integer Dim b As Integer Dim s As String Dim yushu As Byte a = 230: b = 16 While a yushu = a Mod b If yushu s = yushu & s Else s =
  • VB中的乱序函数

    千次阅读 2007-05-17 15:43:00
     从1-max随机选择n个,放在数组arrT()最前面Public Sub RndSel(max As Integer, ByVal N As Integer, arrT() As Integer) Dim p As Integer Dim i As Integer Dim tmp As Integer I
  • VB中的ByVal和ByRef的区别

    千次阅读 2017-07-21 11:59:59
    ByVal是按值传递,形参的改变不会造成实参的改变。...这就像是其它语言中的引用传递一样,如php中的 &amp;$args举个例子:Module Module1 Sub Main() Dim i As Integer = 10 value1(i) 'ref1(i) de...
  • MsgBox()函数MsgBox()函数:VB中的函数;功能:可实现弹出窗口。作用:在对话框中显示消息,等待用户单击按钮,并返回一个 Integer 告诉用户单击哪一个按钮。语法:MsgBox(prompt[, buttons] [, title] [, helpfile,...
  • VB中的二维鞍点

    2016-06-02 18:10:06
    今天学习了用vb的程序输出一个二维鞍点,程序如下: Option Base 1 Dim anma() As Integer Dim m As Byte, n As Byte Private Sub Command1_Click()  Cls  Me.Font.Size = 30  m = 5: n = 6  ReDim anma...
  • vb中msgbox用法

    2019-10-07 06:45:46
    vb中msgbox用法 ... VB中的函数,可实现弹出窗口.作用:在对话框中显示消息,等待用户单击按钮,并返回一个 Integer 告诉用户单击哪一个按钮。语法:MsgBox(prompt[, buttons] [, title] [, helpfile, context...
  • 在左侧工具箱找到command图标,在窗体适当位置创建图标,并在窗体command图标修改为“排序”。 在左侧工具箱找到textbox图标,在窗体恰当位置创建图标。 在窗体双击command图标,在弹出...
  • 在左侧工具箱找到command图标,在窗体适当位置创建图标,并在窗体command图标修改为“排序”。 在左侧工具箱找到textbox图标,在窗体恰当位置创建图标。 在窗体双击command图标,在弹出对话框...
  • vb中两个数比较

    2016-03-28 14:28:21
    在左侧工具箱找到command图标,在窗体适当位置创建图标,并在窗体command图标修改为“排序”。 在左侧工具箱找到textbox图标,在窗体恰当位置创建图标。 在窗体双击command图标,在弹出...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 669
精华内容 267
关键字:

vb中的integer