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 (記載なし)

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