PB 電子会議室
カテゴリ:PowerBuilderの開発環境
日付:2000年09月04日 12:29 発信者:ryochan
題名:RE(14):PB6.5: win32 API関数の使用方法について→PBでのポインタの使用:その1
Takaさん、こんにちは。
>ref string xxx ではなく long xxx で宣言しても同じ、という事ですよね。
>VC++等で慣らした人って、PBしか知らない私よりもポインタの概念/使い方を
>理解していると思っていたのですが...
え?とですね、一応ポインタのことについては、
我流ですが、概念等については把握していたつもりでしたが、
完璧ではなかったかもしれません。実際に使用もしていましたが...
ポインタ型を使用できないPBにおいて、
使用法(特にrefの仕組み)がうまく理解できなかったのです。
はっきりいって、今までは機械的にコーディングしていました。
ちょっとPBの話からそれますが、参考までに。
ポインタを引数に持つAPIは、
Cでは「&」、pascalでは「@」演算子を使用したりして
(もしくはクラスでポインタ型を作成して)
素直にポインタを渡していました。
今回の様に構造体のメンバについても同様、
ポインタを渡していました。
C++では型について極めて曖昧なので、ポインタに
数値型を代入しても問題ないみたいです。
(でもC++内でそんなことする人はいるとは思えませんが...)
但し、型付けが厳格なdelphi(pascal)ではこれはできません。
数値型をポインタ型にキャストしなければいけません。
しかし、delphiで作成したバッファポインタを引数に持つDLL関数については
PBから、アドレスを格納した数値型変数で渡しても正常に動きます。
これはstdcall指定というWin32標準の呼び出し規約でやりとりする指定が
あるからだと思います。
構造体についてはどうなのか?→その2に続きます。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows NT 4.0
DBMS Oracle SQL*Net 8
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS Oracle 8.0
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.