PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
13112 | 00/09/06 02:18:51 | RE(8):PBでの外部関数によるポインタの使用 By ryochan |
13111 | 00/09/05 18:34:36 | PBでの外部関数によるポインタの使用(総括のコメント) By M.M |
13107 | 00/09/05 17:45:23 | RE(6):PBでの外部関数によるポインタの使用(7):API引数 By ryochan |
13106 | 00/09/05 17:34:59 | RE(5):PBでの外部関数によるポインタの使用(6):ref宣言 By ryochan |
13105 | 00/09/05 17:33:57 | RE(4):PBでの外部関数によるポインタの使用(5):string By ryochan |
13104 | 00/09/05 17:33:11 | RE(3):PBでの外部関数によるポインタの使用(4):string By ryochan |
13103 | 00/09/05 17:31:00 | RE(2):PBでの外部関数によるポインタの使用(3):構造体2 By ryochan |
13102 | 00/09/05 17:30:14 | RE(1):PBでの外部関数によるポインタの使用(2):構造体 By ryochan |
13101 | 00/09/05 17:28:56 | PBでの外部関数によるポインタの使用(1):ポインタの説明 By ryochan |
カテゴリ:スクリプトの記述
日付:2000年09月05日 17:33 発信者:ryochan
題名:RE(3):PBでの外部関数によるポインタの使用(4):string
Takaさんがおっしゃっていた
【外部関数コールにおけるstring型の扱いについて】
>PB内の関数どうしのやりとりではどうか解りませんが、外部関数の引数にstring型を使った場合
>(または構造体メンバにstring型を使った場合)、PBが自動的にポインタ変換していると思われます。
正解だと思います。もう少し付け加えさせていただきますと、
終端にnullを含んだchar型配列に変換され、その変数名が
引き渡されることにより、結果としてポインタが渡ることになります。
よってchar配列で直接宣言してもいけますよね。
その場合はきちんと最後のnullを含む様に確保しておかなければいけません。
例
char l_str[4]
l_str = \'ABC\'
外部関数では
function func_hoge(char[4],***) library ***
→これはCの仕様だと思います。
Cではも同様、char str[3]のポインタはstr です。
(&str[0]と同義・・・これは1番目の配列のアドレスを意味します。
C等の配列はPBと違い0から始まります。
これで呼び出す関数宣言の引数は char *paramと宣言します。)
BLOB型が直接指定できないのもTakaさんのおっしゃる
ことが正解だと思います。
(5)に続きます。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS (記載なし)
DBMS (記載なし)
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.