请问一下高人,在Delphi中StrPLCopy函数在VB中有没有对应的函数或解觉办法,非常感谢,即!!!!!!!!!!!
type KQSYDA=packed record
      kh:Integer;         
      bh:array[0..7] of Char;  
        xm:array[0..7] of Char;   
      sr:Word;           
                     
     end;
     PKQSYDA=^KQSYDA;StrPLCopy(@(kqsy[2].bh),'A0002',8);
VB中怎么写非常感谢高人们

解决方案 »

  1.   

    不会Delphi,但是在vb中操作内存的方法可以使用API,无论什么类型都可以
    唯一麻烦的就是要搞清楚要操作的内存字节大小
    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)
    用法:
    CopyMemory 目标缓冲区,要复制的缓冲区,要复制的缓冲区大小
    Private type KQSYDA
       kh As Integer
       bh(7) As Byte   
       xm(7) As Byte   
       sr As Integer            
    End TypeDim kqsy As KQSYDA
    Dim TempByte() As Byte
    TempByte=StrConv("A0002", vbFromUnicode)
    Redim Preserve TempByte(8)
    CopyMemory kqsy.bh(0),Byte(0),8
    如果只是字符串可以这样写
    Private type KQSYDA
       kh As Integer
       bh As String * 8
       xm As String * 8  
       sr As Integer            
    End Type
    Dim kqsy As KQSYDA
    kqsy.bh = "A0002"
      

  2.   

    没仔细看你是这样
    kqsy[2].bh
    可以这样
    CopyMemory kqsy.bh(2),Byte(0), 5
      

  3.   

    Dim kqsy() As KQSYDA 
    Dim TempByte() As Byte 
    TempByte=StrConv("A0002", vbFromUnicode) 
    Redim Preserve TempByte(8) 
    Redim kqsy(2)
    CopyMemory kqsy(2).bh(0),TempByte(0), 8