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 (記載なし)

PowerSpaceの運営は、パワーフューチャー株式会社が行っております。
Copyright © 2013 Power Future Co., Ltd.