PB 電子会議室

コメント

発言No. 更新日 題名(クリックすると発言内容と関連するコメントが表示されます)
17000 02/02/14 14:51:13 RE(1):PB6: dll作成 By ryochan
16979 02/02/09 14:09:26 PB6: dll作成 By マラドーナ

カテゴリ:スクリプトの記述
日付:2002年02月14日 14:51 発信者:ryochan
題名:RE(1):PB6: dll作成

ryochanです。久々です。
マラドーナさん、こんにちは。
>PBで作成した関数をdll化して、VBでAPI同様に使用したいのです。
PBはWin32DLL(APIで呼び出すことができる関数群を含んだDLL)は
作成できません。

しかし、VBからPBで作成したクラスをOLE経由で呼び出して、
連携させることは可能です。
(アジフライさんもおっしゃっているようにどうも
Delphiからは呼べないのだよな。)
ヘルプのPowerBuiler.Application辺りを見てください。

PB側:1.ノンビジュアルユーザオブジェクトを作成する。
   2.ユーザオブジェクト関数(メソッド)を作成する。
   3.動的実行ライブラリファイル、(pbd or dll)を作成する。
VB側:
 Dim pb As Object
 Dim pbclass As Object
 Set pb = CreateObject(\"PowerBuilder.Application\")

  pb.LibraryList = \"PBで作成したpbd,dllのフルパス\"
  pb.MachineCode = False (dllならtrue)
  
 \'メソッドの実行
 \'PBクラスの生成
  Set pbclass = pb.CreateObject(\"ノンビジュアルユーザオブジェクト名\")
 \'メソッドの実行
 pbclass.メソッド名
 \'後始末 
  Set pbclass = Nothing
  Set pb = Nothing

PBの開発環境がインストールされていないPCの設定方法
1.pbappl.regを適当なディレクトリにコピーし、
  レジストリに組み込む。
  (ダブルクリックで可能)
2.pbaen*.tlb(*はバージョン番号ex.pbaen60.tlb)をラインタイムに追加する。
 (ランタイムDLLが含まれているディレクトリにコピーする)
これらのファイルはいずれも、PBの開発環境のインストールディレクトリの
sharedディレクトリにあります。
1.でのpbappl.regの中で指定されているPBVM60J.dll、pbaen60.tlbはフルパスでは
ないので、PBVM60J.dll、pbaen60.tlbをフルパスで編集し直した方が良いかもしれません。


付加情報:

PowerBuilder Version (記載なし)

Client SoftWare

OS Windows 2000
DBMS Microsoft SQL Server Client 6.5
Browser InternetExplorer5.X

Server SoftWare

OS Windows 2000
DBMS Microsoft SQL Server 6.5
WebServer IIS

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