求教高手这个函数及结构体怎么写成VB6.0的?指针搞的我头大!晕了。
typedef struct _A{
  DWORD Size;
  LPBYTE Value;
}
A,*PA;
 
typedef struct _B {
  LPSTR Comment;
  FILETIME LastWritten;
  LPBYTE Blob;
  PA Attributes;

B,*PB;
 
typedef PB Pbl;typedef BOOL meFuction(DWORD *, Pbl **);main()
{
Pbl *Cr = NULL;
DWORD n = 0;......
meFuction(&n,&Cr);
...
}

解决方案 »

  1.   

    FILETIME 是 API 定义
    LPSTR 定义成 string 好了
    DWORD 可以定义成 long
    LPBYTE 也可以用 long
    PA 不清楚
      

  2.   

    关键是 PA PB Pbl Cr 这些指针的如何来实现。
    期盼高人解答,顶帖就给分!
      

  3.   

    typedef struct _A{ 
      DWORD Size; 
      LPBYTE Value; 

    A,*PA; typedef struct _B { 
      LPSTR Comment; 
      FILETIME LastWritten; 
      LPBYTE Blob; 
      PA Attributes; 

    B,*PB; type t_A
        Size as long
        Value as long   '指向BYTE的指针,LONG.
    end typetype t_B
        Comment as string '指向字符串的指针,STRING
        LastWritten as FILETIME
        Blob as long '指向BYTE的指针,LONG
        Attributes as long '指向t_A的指针,LONG
    end typeVB里面的指针,你一律用LONG来表示.反正指针也就一4字节的区域.使用时,需要技巧,该CopyMemory时就CopyMemory吧.
      

  4.   

    “LastWritten as FILETIME” 这个不对,报错“用户定义类型未定义”
    其实这些不重要,我定义string类型的也可以。
    主要是这个函数:typedef BOOL meFuction(DWORD *, Pbl **); 
    该怎么用? 我试了把参数都输入为long型,第一个没问题,返回值正确。但是第二个返回值是空的。
      

  5.   

    Pbl ** 是指向指针的指针应该用 CopyMemory 把数据取出来。
      

  6.   

    FILETIME是API浏览器中已有的一个定义,需要你自己复制.我的补充同楼上.
      

  7.   

    我是VB新手,测试CopyMemory的时候,编译器直接关闭。
    我看到介绍说VB的指针用法需要搞成数组,而VB的数组结构和C的不一样。
    各位告诉能不能给个范例代码? 您的几句话或许就节省我好几天,感激不尽!!!
      

  8.   

    最好把你所有的相关代码片段弄上来,能直接粘贴到IDE中测试的那种这样的话方便大家帮你调试
      

  9.   

    找人帮解决的,用到的就是CopyMemory,解析数据好麻烦:)
    谢谢大家。