DWORD WINAPI GetIfTable(
    OUT    PMIB_IFTABLE pIfTable,
    IN OUT PULONG       pdwSize,
    IN     BOOL         bOrder
    );
这里IN OUT指什么意思?

解决方案 »

  1.   

    这是IDL的定义语法,
    IN表示后面的参数是输入参数;
    OUT表示后面的参数是输出参数;
    IN OUT表示后面的参数既可以输入又可以输出
      

  2.   

    同意楼上朋友的看法.这是IDL的定义语法,
    IN表示后面的参数是输入参数;
    OUT表示后面的参数是输出参数;
    IN OUT表示后面的参数既可以输入又可以输出
      

  3.   

    能否介绍的更详细些,关于IDL,我还是不太明白
    ...
    好象明白了也就是一些废话,让你看的更明白些其实加不加执行效果是一样的?
      

  4.   

    这个函数是在idl文件中定义的
    HRESULT OcrImage([in] LONG lImageSize, [in] BYTE* pbImage, 
    [out] BSTR* pwszOcrText);
    你可以看到带[in]表示的是传入参数,它的分配由调用者来做,释放是由被调者来做的,即如果lImageSize表示的是一个字符缓冲,那么将在调用OcrImage的函数中分配缓冲区内存,而由OcrImage这个函数负责释放lImageSize占用的内存。
    [out]表示由OcrImage负责分配pwszOcrText的内存,而由调用OcrImage函数的人负责释放这块内存。
    具体的描述可以看看介绍COM的书。
      

  5.   

    楼上的说得是对的.
    IN 和OUT 就是决定调用者还是被调用者分配/释放内存的问题.