不可能MM是您的类型
而DAT是一个byte array除非您说说如何装?比如ID放到DAT(0) 和 Dat(1)...

解决方案 »

  1.   

    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _
        (Destination As Any, Source As Long, ByVal Length As Long)Private Type myType
        ID As Long
        NAME As String * 8
        AGE As Byte
        SEX As Boolean
        HEIGHT As Byte
    End TypeDim MM As myType
    Dim DAT() As BytePrivate Sub Command1_Click()
        MM.ID = 1002
        MM.NAME = "ABCDEFG"
        MM.AGE = 22
        MM.SEX = 0
        MM.HEIGHT = 173
        
        ReDim DAT(Len(MM))
        
        CopyMemory DAT(0), MM.ID, Len(MM)
        'Debug.Print DAT(0), DAT(1)
    End Sub
      

  2.   

    现在我是用一种很笨的办法。
        Open "c:\aa" For Binary Access Write As #1
            Put #1, , MM
        Close
        Open "c:\aa" For Binary Access Read As #1
            ReDim cc(LOF(1))
            Get #1, , DAT
        Close
    谁有更好的办法啊??PLEASE ,HELP ME !
      

  3.   

    to  technofantasy(www.applevb.com) :
    字符呢?to soec(龚):
    意义和在?
      

  4.   

    WINSOCK。不能传送自定义类型,有什么办法呢??我只想到这个。。
      

  5.   

    这个比较麻烦,你可以看下面的代码:
        Debug.Print VarPtr(MM.NAME)
        Debug.Print VarPtr(MM.ID), VarPtr(MM.AGE), VarPtr(MM.SEX)
    从结果可以看到存放字符串的地址同其它的地址是不连续的 ,这样你可能只有分别拷贝字符串和其它了。
      

  6.   

    TO : technofantasy(www.applevb.com) 
    在读字符串时是:
    DAT(4)- 65
    DAT(5)- 0
    DAT(6)- 66
    DAT(7)- 0
    DAT(8)- 67
    中间是隔开的。
    如果我用土办法读的时候是:    Open "c:\aa" For Binary Access Write As #1
            Put #1, , MM
        Close
        Open "c:\aa" For Binary Access Read As #1
            ReDim cc(LOF(1))
            Get #1, , DAT
        Close
    ----------------------------------------------
    DAT(4) - 65
    DAT(5) - 66
    DAT(6) - 67
    ----------------------------------------------
    有办法像下面的那样吗??
      

  7.   

    用ReDim DAT(Len(MM))后
    DAT(0-16)
    用CopyMemory 方法,
    会隔开字符串,
    dat不能装完整个数据。
    有解决方法吗??
      

  8.   

    还是不用copymemory的方法吧,地址不连续的:(
      

  9.   

    to:gump2000(阿甘) 
    那请问有什么好的办法??