PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
11127 00/04/23 20:54:05 RE(14):PB5.0.04: シリアルポートとの通信 By sat
11117 00/04/21 17:32:51 RE(13):PB5.0.04: シリアルポートとの通信 By あすかちゃんの父
11111 00/04/21 12:56:30 RE(12):PB5.0.04: シリアルポートとの通信 By sat
8470 99/10/01 10:55:58 RE(11):PB5.0.04: シリアルポートとの通信 By hirayama
8192 99/09/14 10:05:02 RE(10):PB5.0.04: シリアルポートとの通信 By hirayama
8160 99/09/12 22:22:42 RE(9):PB5.0.04: シリアルポートとの通信 By あすかちゃんの父
8133 99/09/10 09:28:55 RE(8):PB5.0.04: シリアルポートとの通信 By hirayama
8035 99/09/07 09:29:13 RE(7):PB5.0.04: シリアルポートとの通信 By hirayama
8030 99/09/06 18:41:56 RE(6):PB5.0.04: シリアルポートとの通信 By あすかちゃんの父
8028 99/09/06 17:47:23 RE(5):PB5.0.04: シリアルポートとの通信 By hirayama
8014 99/09/06 10:03:30 RE(4):PB5.0.04: シリアルポートとの通信 By hirayama
8002 99/09/04 16:37:58 RE(3):PB5.0.04: シリアルポートとの通信 By あすかちゃんの父
7961 99/09/02 17:37:45 RE(2):PB5.0.04: シリアルポートとの通信 By hirayama
7946 99/09/02 14:03:13 RE(1):PB5.0.04: シリアルポートとの通信 By あすかちゃんの父
7941 99/09/02 11:59:58 PB5.0.04: シリアルポートとの通信 By hirayama

カテゴリ:スクリプトの記述
日付:1999年09月06日 18:41 発信者:あすかちゃんの父
題名:RE(6):PB5.0.04: シリアルポートとの通信

hirayamaさん、こんばんは。

>しかし、以下のような定義をしますと、実行時に
>「アプリケーションのランタイムエラー(R0010)
>  readfileがサポートしていない型の引数があります。」
>となります。

>そこで、2番目のパラメータのデータ型をanyからstringに変えました。
>(定義も、パラメータのセットのところも)
>すると、上記のエラーは出ませんが、戻り値が0(zero)となります。
>これはエラーということだと思います。

まず外部関数の定義がまずいです。参照渡しの変数は、refのキーワー
ドが必要です。
ReadFileの外部関数定義は、例えばこうします。

FUNCTION long ReadFile(long hFile, ref string lpBuffer, &
  long nNumberOfBytesToRead, ref long lpNumberOfBytesRead, &
  long lpOverlapped) library \"kernel32.dll\"

参照渡しについては、手前味噌ですが、
http://member.nifty.ne.jp/quarteto/winapi.html
をご覧ください。

またReadFile関数のlpBufferの引数は、Any型ではなくblobかstring型
として明示的に型指定したほうがいいです。nullデータを扱うのであれ
ば、blobを使います。stringだとnullのところで、文字列の終端として
扱われます。
またlpBufferの領域をAPI呼び出し前に確保していますか?
1回のAPI呼び出しで、最大36byteのデータを読み込むのであれば、

String ls_buffer, ls_read_data
long ll_read_len

ls_buffer = space(36)
ll_rtn = ReadFile(gl_hcom, ls_buffer, 36, ll_read_len, 0)
ls_read_data = left(ls_buffer, ll_read_len)

といったスクリプトにします。



付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows95
DBMS (記載なし)
Browser (記載なし)

Server SoftWare

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

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