PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
19500 | 03/05/14 13:43:12 | RE(6):PB6.5: API関数 WNetEnumResourceの宣言について By i |
19499 | 03/05/14 13:03:57 | RE(5):PB6.5: API関数 WNetEnumResourceの宣言について By Taka |
19498 | 03/05/14 12:07:11 | RE(4):PB6.5: API関数 WNetEnumResourceの宣言について By i |
19497 | 03/05/14 10:32:39 | RE(3):PB6.5: API関数 WNetEnumResourceの宣言について By Taka |
19496 | 03/05/14 10:02:59 | RE(2):PB6.5: API関数 WNetEnumResourceの宣言について By i |
19491 | 03/05/13 20:02:06 | RE(1):PB6.5: API関数 WNetEnumResourceの宣言について By Taka |
19485 | 03/05/13 14:09:20 | PB6.5: API関数 WNetEnumResourceの宣言について By i |
カテゴリ:スクリプトの記述
日付:2003年05月14日 10:32 発信者:Taka
題名:RE(3):PB6.5: API関数 WNetEnumResourceの宣言について
iさん、こんにちは。
>s_buff = Space( 1000 ) // 十分な大きさのバッファを確保(これでいいのでしょうか?)
>b_buff = Blob( s_buff )
OKです。
もう少し余裕を持たせても良いかもしれません。
>それで、このblob型を32バイトづつ構造体へコピーする方法(API)が
>わかりません。どうすればよいのでしょうか?
RtlMoveMemoryというAPIがあります。(一般名としてはMoveMemoryで定義されますが)
subroutine MoveMemory( &
ref NETRESOURCE Destination, &
ref blob Source, &
ulong Length ) library \"kernel32.dll\" alias for \"RtlMoveMemory\"
こんな感じで外部関数を宣言し、WNetEnumResource()が成功した直後に呼び出します。
(Lengthには32を指定)
※このAPIは、Sourceが示すメモリアドレスから始まるnバイトを、Destinationが示すアドレスへコピーするもので、
宣言しだいではどんな型にも応用できるので覚えておくと便利です。
ちなみに、文字列を示すポインタのlong値を文字列表現するには、
String(ポインタ変数,\"address\")
とするだけでOKです。
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS Windows 2000
DBMS Oracle SQL*Net 8
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS Oracle 8.0
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.