0

GigE SDK C ++では、仕様にGetDataPointer()の定義が次のように記載されています。

PvUInt8 * PvBuffer::GetDataPointer  (   )   
Get the buffer's data pointer. 
Const version.
Returns:
A pointer to the memory pointer. 

私はこの関数を私のプログラムで次のように使用しました(plは最後の行を参照してください):

PvBuffer * lBuffer = new PvBuffer();
// Create the Data (buffers are created as images, GetImage() is valid on a fresh buffer)
lBuffer->GetImage()->Alloc( 1224, 1029, PvPixelMono8 );
PvUInt8 *lDataBuffer = lBuffer->GetDataPointer(); //use in actual code 

質問はPvUInt8についてです。定義を見ると、これはバッファ内のデータのタイプですか、それともポインタのタイプであり、常に4バイト(32ビットマシンの場合)または8バイト(64ビットマシンの場合)になります。

4

1 に答える 1

1

提供された情報から、(別名「a byte」)PvUInt8のエイリアスのようです。unsigned charこれPvUInt8 *は単なるバイトポインタであることを意味します。 sizeof(PvUInt8)である必要があり1sizeof(PvUInt8 *)実行環境でのポインターのネイティブ サイズにする必要があります (たとえば、32 ビット システムでは 4、64 ビット システムでは 8 など)。

于 2012-07-05T10:31:16.630 に答える