PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
12629 00/08/04 18:12:19 RE(18):PB6.5: VCで作成したActiveXコントロールへ配列を渡す方法について By ryochan
12610 00/08/04 13:14:52 RE(17):PB6.5: VCで作成したActiveXコントロールへ配列を渡す方法について By めめ
12599 00/08/04 09:39:21 RE(16):PB6.5: VCで作成したActiveXコントロールへ配列を渡す方法について By ryochan
12590 00/08/03 16:34:52 RE(15):PB6.5: VCで作成したActiveXコントロールへ配列を渡す方法について By めめ
12575 00/08/02 18:54:39 RE(14):PB6.5: VCで作成したActiveXコントロールへ配列を渡す方法について By めめ
12559 00/08/02 15:53:25 RE(13):DLLへ配列を渡す方法について By ryochan
12548 00/08/02 11:15:53 RE(12):DLLへ配列を渡す方法について By ryochan
12544 00/08/02 07:50:14 RE(11):PB6.5: VCで作成したActiveXコントロールへ配列を渡す方法について By MINORU_H
12289 00/07/19 08:22:13 RE(10):PB6.5: VCで作成したActiveXコントロールへ配列を渡す方法について By MINORU_H
12288 00/07/19 07:21:53 RE(9):PB6.5: VCで作成したActiveXコントロールへ配列を渡す方法について By MINORU_H
12287 00/07/19 07:15:51 RE(8):PB6.5: VCで作成したActiveXコントロールへ配列を渡す方法について By MINORU_H
12285 00/07/19 01:58:43 RE(7):PB6.5: VCで作成したActiveXコントロールへ配列を渡す方法について By Taka
12282 00/07/18 15:44:00 RE(6):PB6.5: VCで作成したActiveXコントロールへ配列を渡す方法について By めめ
12280 00/07/18 15:06:22 RE(5):PB6.5: VCで作成したActiveXコントロールへ配列を渡す方法について By ryochan
12272 00/07/18 10:52:36 RE(4):PB6.5: VCで作成したActiveXコントロールへ配列を渡す方法について By MINORU_H
12271 00/07/18 10:26:11 RE(3):PB6.5: VCで作成したActiveXコントロールへ配列を渡す方法について By MINORU_H
12257 00/07/17 13:45:17 RE(2):PB6.5: VCで作成したActiveXコントロールへ配列を渡す方法について By ryochan
12248 00/07/15 13:30:25 RE(1):PB6.5: VCで作成したActiveXコントロールへ配列を渡す方法について By Taka
12246 00/07/15 08:26:20 PB6.5: VCで作成したActiveXコントロールへ配列を渡す方法について By MINORU_H

カテゴリ:PowerBuilderの開発環境
日付:2000年07月15日 13:30 発信者:Taka
題名:RE(1):PB6.5: VCで作成したActiveXコントロールへ配列を渡す方法について

MINORU_Hさん、こんにちは。

>コントロール側の引数の型はshort *です。
>VBにて動作確認を行ったところ、問題なく配列の先頭ポインタをコントロール
>側で参照できたのですが、PB6.5にて

>int param[5] = {100, 100, 100, 100, 100}
>ole_1.object.poo(param[1])

>の様に指定しても1番目のデータしか取得できません。

OLEのメソッド呼び出しにおいて、参照で渡したい引数は、
 ole_1.object.method( ref arg_1, ref arg_2 ... )
と記述する、という事がオンラインブックに書かれています。
まずはこの方法から試してみてはどうでしょうか。

ただ.、
>int型で宣言した配列の要素が8byte毎に入っているではありませんか。
この報告からすると、参照渡しに成功してもうまく拾えるがどうか、ちょっとアヤシイですね。

最悪の場合は、配列渡しをやめて、1つずつ値を送る仕掛けに変更することになるかもしれません。


>これは何か私の使っている環境がおかしいのでしょうか。それともPBのメモリの
>割り当てはInt型の配列でもクラスオブジェクトとしてラップされて8byte毎に
>取られるものなのでしょうか。

う?ん、どうなんでしょう???
Any型では元の型の情報がすべて入るので、実バイト数はかなり脹らむ事が想定できますが、
単純なint型の場合でも何か余計な情報が入っている、ということでしょうか...

Win32APIなどで long配列を参照渡しするものがありますが、この場合はうまく動いています。
もっとも外部関数として呼び出すので、PBが独自にバイト数の調整をやっているのかもしれません。

付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows NT 4.0
DBMS その他
Browser (記載なし)

Server SoftWare

OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)

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