int ASFLIB_StreamingStart(
ULONG lStreamHandle,
ULONG FragmentNo,
UCHAR *(&pHeadBuffer),
ULONG &nHeadLength,
UCHAR *pFisrtIFramePacket,
ULONG &nFisrtIFramePacketLength
);
重点是*(&pHeadBuffer),&nHeadLength是什么意思,和指针有什么区别?

解决方案 »

  1.   

    如果我没有理解错的话,),&nHeadLength应该是引用.我记得
      

  2.   

    Microsnow(冰火)忙一下忙,引用和指针有什么区别?
    帮忙把上面这个函数头翻译完整好吗?
      

  3.   

    我记得《C++ Primer》上面曾经讲过类似于int *(&iPod);这样的东西,你可以去看看。另外,C++中的引用参数传递,在Delphi里面是通过var来实现的。所以,你可以这样试试看:
    function ASFLIB_StreamingStart(lStreamHandle: ULONG; FragmentNo: ULONG; var  pHeadBuffer: ^UCHAR; var nHeadLength: ULONG; pFisrtIFramePacket: ^UCHAR; var nFisrtIFramePacketLength: UCHAR): Integer;这只是供你参考,肯定不正确。
      

  4.   

    *(&pHeadBuffer) 就是相当于 二级指针 你可以这样..&引用 相当于 delphi的 var.UCHAR *(&pHeadBuffer),var pHeadByffer: PBYTE;
      

  5.   

    谢谢上面二位,等我弄好了,结贴。
    对C的引用有一点印象,只是不知道是不与DELPHI的引用(Var)是不是等价。
    看了解释后有一点不明白。这样的二级指*(&pHeadBuffer)可否用象**pHeadBuffer一样翻译
    我原本想在DELPHI中用
    type
    // PUCHAR=^UCHAR;
     PPUCHAR=^PUCHAR;
    实现结构用var pHeadByffer: PBYTE 参数能当二级指针用吗?我记得delphi的函数和过程中如果用对象做参数,就是用的指针,但用如果对象参数前加个var 是不是也是二级指针呀?越学越晕