![]() |
![]() |
|
|
F32to16、F16to32(3fml)
名前
F32to16()、F16to32() - 16 ビット FML バッファと 32 ビット FML バッファの間の変換
形式
#include <stdio.h>
#include "fml.h"
#include "fml32.h"
int
F32to16(FBFR *dest, FBFR32 *src)
int
F16to32(FBFR32 *dest, FBFR *src)
機能説明
F32to16() は、32 ビットの FML バッファを 16 ビットの FML バッファに変換します。これは、フィールド対フィールドのバッファの変換を行い、フィールド化バッファのインデックスを作成することによって行ないます。FLDID32 から FLDID を生成し、フィールド値 (文字列および carray フィールドの長さ) をコピーすることによって、フィールドを変換します。dest は、宛先バッファのポインタです。src は、もとのフィールド化バッファを指すポインタです。ソース・バッファは変更されません。
これらの関数は、領域の不足のために異常終了する場合があります。処理を完了するために十分な追加のメモリを割り当てた後で、これらの関数を再び呼び出すことができます。
F16to32() は、16 ビットの FML バッファを 32 ビットの FML バッファに変換します。この関数は fml32 ライブラリまたは共有オブジェクトの中にあり、エラー時には Ferror32 を設定します。
F32to16() は、FML ライブラリまたは共用オブジェクトの中にあり、エラー時には Ferror を設定します。これらの関数を使用するためには、fml.h および fml32.h の両方をインクルードする必要があることに注意してください。同じファイルに、fml1632.h をインクルードする必要はありません。
F32to16() は、FLD_PTR、FLD_FML32、または FML_VIEW32 のフィールド・タイプが使用されると、FBADFLD を設定して異常終了します。これらのフィールド・タイプに対して F16to32() を実行しても、何の影響もありません。
マルチスレッドのアプリケーション内のスレッドは、TPINVALIDCONTEXT を含め、どのようなコンテキスト状態で実行している場合でも、F32to16() または F16to32() を呼び出すことができます。
戻り値
この関数は、エラー発生時に -1 を返し、Ferror を設定してエラー条件を示します。
エラー
次の条件の場合、F32to16() は異常終了し、Ferror を次の値に設定します。
ソース・バッファまたは宛先バッファのどちらかが適切なバウンダリで開始していません。
ソース・バッファまたは宛先バッファのどちらかがフィールド化バッファでないか、または Finit() によって初期化されていません。
フィールド値は、変換先のフィールド化バッファにコピーされますが、バッファには十分な領域が残っていません。このエラーは、32 ビットの FML フィールドが長すぎて、16 ビットの FML フィールドに収まらない場合にも返されます。このエラーが返された場合は、宛先バッファにフィールドはできません。
このエラーは、F32to16() 関数でのみ発生します。ソース・バッファは、16 ビットの FML がサポートしている 8 つのフィールド・タイプ以外のフィールド識別子を持っているか、フィールド番号が 8191 を超えています。
関連項目
![]() |
![]() |
![]() |
|
Copyright © 2001 BEA Systems, Inc. All rights reserved.
|