PB 電子会議室
カテゴリ:PowerBuilderの開発環境
日付:2000年07月17日 13:45 発信者:ryochan
題名:RE(2):PB6.5: VCで作成したActiveXコントロールへ配列を渡す方法について
MINORU_Hさん、Takaさんこんにちは。
>VBにて動作確認を行ったところ、問題なく配列の先頭ポインタをコントロール
>側で参照できたのですが、PB6.5にて
>
>int param[5] = {100, 100, 100, 100, 100}
>ole_1.object.poo(param[1])
>
>の様に指定しても1番目のデータしか取得できません。
参照についてTakaさんと違った見解ですが、
コントロール側ですべての配列の要素を取得したいという
ことでしたら
ole_1.object.poo(param)
としたらどうでしょうか?
>これは何か私の使っている環境がおかしいのでしょうか。それともPBのメモリの
>割り当てはInt型の配列でもクラスオブジェクトとしてラップされて8byte毎に
>取られるものなのでしょうか。
>
メモリの割り当てはPBに限ったことではなく、他のコンパイラも
パフォーマンス向上等の目的により、独自に割り当てていることも
あります。
その場合、ふつう、ポインタを扱うことのできる言語では配列や構造体等で
手動でメモリの割り当ての圧縮(連続的に割り当てること)ができるのですが
PBは手動では不可能だと思います。
ですからTakaさんのおっしゃっていたように、
参照渡しでは、個別に行わなければならないのだと思います。
PBが自動で変更しているのかどうかは、私もよく分かりません。
long型に関しては偶然の一致のような気もしますが。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows NT 4.0
DBMS その他
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.