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 (記載なし)
Copyright © 2013 Power Future Co., Ltd.