配列クラス (FCOMPLEX 構造体)
Namespace: FVILAssembly: FVILbasic (in FVILbasic.dll) Version: 3.1.0.0 (3.1.0.17)
Syntax
C# |
---|
[SerializableAttribute] public class FCOMPLEX_ARRAY : CFviObject, ICloneable, ISerializable, IXmlSerializable, IEnumerable<FCOMPLEX>, IFviCopyable, [T:FVIL.IFviPtrIndexer<fvalgcli::FCOMPLEX>] |
Visual Basic |
---|
<SerializableAttribute> Public Class FCOMPLEX_ARRAY Inherits CFviObject Implements ICloneable, ISerializable, IXmlSerializable, IEnumerable(Of FCOMPLEX), IFviCopyable, [T:FVIL.IFviPtrIndexer<fvalgcli::FCOMPLEX>] |
Remarks
アンマネージ環境のヒープに FCOMPLEX 構造体の配列を確保するクラスです。
確保した領域のアドレスは、Address に保管され、
Clear()()()() が呼ばれた時や
このインスタンスが解放される時に自動的に解放されます。
このクラスは、.NET 環境とネイティブ環境の間で大量の画像処理データの受け渡しを行うことを目的としています。
通常、.NET 環境の固定長配列をネイティブ環境に受け渡す場合は マーシャリングが必要になり、
データのコピーが少なくとも1回は発生します。
ネイティブ環境の処理結果を .NET 環境に反映する場合(In,Out 属性の引数の場合)は、計2回発生します。
このクラスを使用するとマーシャリングの必要が無い為、データコピーのコスト削減が行えます。
領域の確保と解放について:
領域の確保と解放は FVCL を介して FIE ライブラリを使用しています。 外部で確保した領域を設定することもできますが、 アロケータを一致させる必要がありますのでご注意ください。(下表参照) 自動的に解放したくない場合は、 IsAttach を true に設定することで回避できます。
その他の操作:
操作 | メソッド | 概要 |
---|---|---|
領域設定 | SetBuffer(FCOMPLEX_PTR, Int32, Boolean) | 外部で確保した領域を設定する場合に使用します。 |
アタッチ | Attach(Object) | 同一型のインスタンスが保有する領域にアタッチします。 |
移動 | MoveFrom(Object) | 同一型のインスタンスが保有する領域をこのインスタンスに移動します。 |
複製 | CopyFrom(Object) | 同一型のインスタンスの内容を複製します。 |
初期値と範囲:
プロパティ | 初期値 | 範囲 | 説明 |
---|---|---|---|
Item[([( Int32])]) | (なし) | FCOMPLEX | 配列の要素の取得または設定を行います。 |
Address | IntPtr.Zero | IntPtr.Zero または 有効なアドレス | 配列の先頭アドレスの取得を行います。 |
Count | 0 | 0,1~ | 配列の要素数の取得を行います。 |
IsAttach | false | false/true | アタッチ状態の取得または設定を行います。 |
SizeOfItem | sizeof(FCOMPLEX) | sizeof(FCOMPLEX) | 配列要素1つ分のサイズ(byte)を取得します。 |
Size | 0 | SizeOfItem × Count | 配列全体のサイズ(byte)を取得します。 |