C++ 中的pPoint 如何转换??(50分)

  • 主题发起人 主题发起人 xwings
  • 开始时间 开始时间
X

xwings

Unregistered / Unconfirmed
GUEST, unregistred user!
我在实现一个接口中,看到接口的一个函数的参数为
ISomeInterface.SomeFunt(Byte** ppdwBuffer,DWORD* pdwLength);
其中参数为
ppdwBuffer
[out] Pointer to a pointer to the buffer.
pdwLength
[out] Pointer to a double word containing the length of the buffer, in bytes.
我是用这个方法实现接口的.
TMyClas=class(TinterfacedObject,ISomeInterface)
public
SomeFunt.....
...
end;
这个函数的参数如何在delphi中表示??
急急.

回答出来给150分


 
Byte** 转化成:
type PPByte=^PByte; (注意那个小小的^符号)
用PPByte
DWORD* 转化成 PDWORD
 
谢谢,不过我看到有的接口声明文件中, PPoint的没有类型说明, 就是一个 out Parm., Point的
直接用point指向的类型来表示, 如何 Pdword 就用 DWord来表示. 这个是什么意思啊??
 
对不起,忘了再给你100分了.
 
比如说:
func(var p:Pointer) 就相当于 func(p:PPointer)
func(var w:DWORD) 就相当于 func(w:PDWord)
var参数在内部实际就是指针,对我们来说叫“引用变量”
另外光一个var,不指定类型,它其实是个不指定类型的指针,他可以指向任何东西,包括指针变量的指针……
用的时候强制指定一个类型就可以了
 
我自己又写了几个测试了一下,基本上懂了. 我发现 用 out时 也是引用变量,不过只能输出.
现在我的问题时 在实现一个已经声明好的接口的时候,Byte** 是定义成 PP1:PPbyte 呢?
还是 定义成 Out P1:Pbyte ?
 
后退
顶部