森山です。

On Thu, 24 Feb 2005 16:53:16 +0900
<kounoike@mbh.nifty.com> wrote:

> 関数側で云々と言うより,そもそも biSetPointer で何をしたいのかをもう少し明確にしな
> いと的確なアドバイスは得られないのではと思いますが。
> 
> 私自身ほとんど初級者レベルではありますが,私にはbiSetPointerの意味が理解できませ
> ん。

  確かにおっしゃる通りですね。

  元々は、装置の制御用にメーカが提供しているライブラリに
単を発しています。

  説明では、あらかじめ以下の構造体を定義して有るので、

        static struct tGroupName  {
                int iDummy ;
                int iDummy2 ;
        } ;                     <  ここに名前が無いのは変なのですが、
                                   メーカ説明では、何も記載されて
                                   いません。

  ユーザで、以下のように宣言し、

        static struct  tGroupName *pgUser ;

  以下のように関数を使用する事により、

        functionName ( &pgUser ) ;

  以下のように値を得る事が出来る。

        iUserVar = pgUser->iDummy ;

  という説明になっているのです。

#   メーカの説明では、ユーザが定義した構造体型ポインタ変数の
# 領域確保については説明が無く、サンプルプログラムでも領域確保の
# 記述は有りません。又、ソースは公開されていません。
#   尚、上記で使用している変数名等は、実際の名称とは異なります。

  で、上記ライブラリの動作を調べると、関数を使用した時にユーザが
定義した変数に値を返すのではなくて、あらかじめ確保してある領域の
ポインタを返すような動作になっているのです。

  それで、関数側でどうゆう処理をしているのかと、興味を持った
次第なのです。

#   ちなみにコンパイラ自体もメーカ提供のもので、NECのPC-9801用
# MS-DOSで使用する物です。

-- 
K.Moriyama