long 是 32 位整型,转换成 64 位是什么意思?

解决方案 »

  1.   

    double 是浮点型,不是整型!!!
      

  2.   

    VB6没有64位整形!一般情况下用货币型代替(用货币型比较方便转换,因为它是定点的,除以10000就能转换)Dim Int32 As Long
    Dim Int64 As Currency
    Int64=Int32/10000再传递那个Int64就行许多讲API的书都讲过
      

  3.   

    'FAT32 FreeSpace
    Create a new project, and add this code to Form1:
    Private Declare Function GetDiskFreeSpaceEx Lib "kernel32" Alias "GetDiskFreeSpaceExA" (ByVal lpRootPathName As String, lpFreeBytesAvailableToCaller As Currency, lpTotalNumberOfBytes As Currency, lpTotalNumberOfFreeBytes As Currency) As Long
    Private Sub Form_Load()
        Dim r As Long, BytesFreeToCalller As Currency, TotalBytes As Currency
        Dim TotalFreeBytes As Currency, TotalBytesUsed As Currency
        'the drive to find
        Const RootPathName = "C:\"
        'get the drive's disk parameters
        Call GetDiskFreeSpaceEx(RootPathName, BytesFreeToCalller, TotalBytes, TotalFreeBytes)
        'show the results, multiplying the returned
        'value by 10000 to adjust for the 4 decimal
        'places that the currency data type returns.
        Me.AutoRedraw = True
        Me.Cls
        Me.Print
        Me.Print " Total Number Of Bytes:", Format$(TotalBytes * 10000, "###,###,###,##0") & " bytes"
        Me.Print " Total Free Bytes:", Format$(TotalFreeBytes * 10000, "###,###,###,##0") & " bytes"
        Me.Print " Free Bytes Available:", Format$(BytesFreeToCalller * 10000, "###,###,###,##0") & " bytes"
        Me.Print " Total Space Used :", Format$((TotalBytes - TotalFreeBytes) * 10000, "###,###,###,##0") & " bytes"
    End Sub
      

  4.   

    VB没有64位整型,但可以定义一个类型,里面包含两个LONG型。
    问题是如何从一个32位long型转换到这个自定义的类型。以上回答不得分!大家再努力!!!
      

  5.   

    我如果要用这样的数据,我一般:使用一个integer数组每一个项存储一个位,例如:dim a(1 to 2) as long 
    a(1)=1
    a(2)=3
    那么a()实际上表示的是31
      

  6.   

    抓狂中……
    现在觉得假如我是斑竹就好了
    把这个贴子Delete
    假如我是CSDN管理员就更好了
    封他ID……--------------------------------------------------------------------
    居然有人这样问问题
      

  7.   

    用Currency是最好的方法结构啊、数组啊 能以ByVal方式传递吗?
      

  8.   

    TO: zyl910(910:分儿,我来了!)  
        有本事,你就回答啊,不会趁早到一边闭上嘴。
      
        我看你的3颗星怕也是从哪儿偷来的吧!!!
      

  9.   

    再将问题说一下,请各位高手回答之前,看清想好!如何将LONG型转换成64位整型.不要告诉我用.NET来做!
    VB没有64位整型,但可以定义一个类型,里面包含两个LONG型。
    问题是如何从一个32位long型转换到这个自定义的类型。
      

  10.   

    Dim n1, n2 As Long
    Dim ln As String * 8
    n1 = &HA5A5A5A5
    n2 = &H5A5A5A5A
    ln = n1 * &H10000000这个可以么?可你怎么显示呢?
      

  11.   

    还叫别人想清楚
    你自己想清楚没有
    你是不是喜欢:写程序写了一半后,发现由于最开始的设定错误,某些功能无法实现,只有从头改起
    这种问题不会回答又如何
    我的风格是:如果某种方法不能达到完美的效果,那我根本不去学
    学用这种 不能完全解决问题 的方法是浪费时间
    比如我用VC写了一个dll,其中有个函数是:
    void _stdcall MsgBoxInt64(__int64 Value);你怎样传递那个Value
    注意Value是__int64,而不是__int64*,只能以传值方式传递用结构体、数组能传递吗?!
      

  12.   

    我来作证,zyl910可是这里最热心的好人了,他的分是帮助大家得来的,也曾帮了我的大忙!
      

  13.   

    我回答不了这个问题,但是ZYL910的分得的可不是假的
    他有他的专长斧头可以随便砍死一头牛,但是如果你要他砍一只鸡的时候也许有时候砍得不准
    人无完人,如果ZYL91O真的是全才,我就去湖南拜师了......
    不过按照我的水平,我觉得这个问题他答得还是不错的.(本人不是高手,差不多2年才1000分,惭愧.....)
      

  14.   

    下面的话,与ZYL910共勉:人的能力有高低,高低也只是相对的.放到大海里都是一滴水珠而已!再攻击别人之前,先想想自己.浮躁之人,决对成不了高手.
      

  15.   

    算了
    有分就行
    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)Private Type Int64
        LoDWord As Long
        HiDWord As Long
        
    End TypePrivate Sub Int64SetNum(Int64Value As Int64, ByVal Num As Long)
        Int64Value.LoDWord = Num
        Int64Value.HiDWord = (Num And &H80000000) <> 0 '要考虑符号位
    End SubPrivate Function Int64GetNum(Int64Value As Int64) As Double
        Dim TempCur As Currency
        
        CopyMemory TempCur, Int64Value, 8
        
        Int64GetNum = TempCur * 10000#
        
    End FunctionPrivate Sub Command1_Click()
        Dim TempInt64 As Int64
        
        Int64SetNum TempInt64, 12345
        MsgBox Int64GetNum(TempInt64)
        
        Int64SetNum TempInt64, -12345
        MsgBox Int64GetNum(TempInt64)
        
    End Sub