- PR -

VB2008でコンパイルしたDLLをPowerBuilder11.2で読み込み

1
投稿者投稿内容
yangjiayi
ベテラン
会議室デビュー日: 2007/10/04
投稿数: 59
投稿日時: 2008-09-08 16:20
こんにちは。
PowerBuilder11.2の中で、VB2008でコンパイルしたDLLを読み込みたいです。
ネットでいろいろ探してみましたが、試しもやってみたが、うまくいかなかったです。

例えば、VB2008で以下のようなファンクションを作成します。
コード:
Public Function func_intsum(ByVal argint1 As Integer, ByVal argint2 As Integer) As Integer
    func_intsum = argint1 + argint2
End Function


コンパイルし、intsum.dllと命名します。

それから、Powerbuilder11.2で以下のように定義します。
コード:
Function int func_intsum(int argint1,int argint2) Library "D:\intsum.dll"



ですが、Powerbuilder11.2はこのファンクションは使えませんでした。

なにか注意点か、テクニックはあるのでしょうか。
ぜひご教授ください。

待っています。
_________________
yangjiayi
まるく
大ベテラン
会議室デビュー日: 2004/01/09
投稿数: 181
投稿日時: 2008-09-09 12:12
VB2008 で作成したクラスライブラリ dll は .NET からしか扱えません。
COM コンポーネントとして開発してください。

http://msdn.microsoft.com/ja-jp/library/microsoft.visualbasic.comclassattribute.aspx



引用:

yangjiayiさんの書き込み (2008-09-08 16:20) より:
こんにちは。
PowerBuilder11.2の中で、VB2008でコンパイルしたDLLを読み込みたいです。
ネットでいろいろ探してみましたが、試しもやってみたが、うまくいかなかったです。

例えば、VB2008で以下のようなファンクションを作成します。
コード:
Public Function func_intsum(ByVal argint1 As Integer, ByVal argint2 As Integer) As Integer
    func_intsum = argint1 + argint2
End Function


コンパイルし、intsum.dllと命名します。

それから、Powerbuilder11.2で以下のように定義します。
コード:
Function int func_intsum(int argint1,int argint2) Library "D:intsum.dll"



ですが、Powerbuilder11.2はこのファンクションは使えませんでした。

なにか注意点か、テクニックはあるのでしょうか。
ぜひご教授ください。

待っています。


unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2008-09-09 13:07
引用:

yangjiayiさんの書き込み (2008-09-08 16:20) より:
それから、Powerbuilder11.2で以下のように定義します。
コード:
Function int func_intsum(int argint1,int argint2) Library "D:intsum.dll"



ですが、Powerbuilder11.2はこのファンクションは使えませんでした。


「Powerbuilder11.2」はぜんぜん知りませんが、DLL ファイル名を直接指定することから考えると、VB(VB6 やそれより前のバージョン) から Declare を使って呼べるようなものと同じ形式の DLL でないとダメなのだろうと思います。(間違っているかもしれませんが。)
yangjiayi
ベテラン
会議室デビュー日: 2007/10/04
投稿数: 59
投稿日時: 2008-12-19 11:12
結局、VC++2008のコンソールDLLで、ファンクションを作って、VBとPB両方でも使えるように作っていくことを検討しています。

いろいろありがとうございます。
_________________
yangjiayi
1

スキルアップ/キャリアアップ(JOB@IT)