Delphiで作ったDLLと同じように実行しようとすると、
「プロシージャエントリポイントが見つかりませんでした」
という旨のエラーが出て実行することができません。
下記のサイトを参考にしてDelphi製のDLLの作成・利用を行いました。同じような記述でVB製のDLLを動かそうとしたのですが、前述のエラーが発生してしまいます。
http://oto.chu.jp/kujira/text/delphi/dll.htm
VB製のDLLをDelphiで使うには、何か特別な書き方などが必要なのでしょうか?
DLLの中にある処理そのものは、とりあえず、テストとしてニ値のintegerを加算するだけなのですが……。
詳しい方いらっしゃいましたら、お願いします。
再回答ですみません。
>VB製のActiveX DLLは、通常のDLLと同じように呼び出すことはできないということでしょうか。
呼び出せる様です。
以下、ヒントとなるスレッドを記載します。
http://leed.issp.u-tokyo.ac.jp/~takeuchi/delphi/article/057/0572...
http://leed.issp.u-tokyo.ac.jp/~takeuchi/delphi/article/057/0572...
http://leed.issp.u-tokyo.ac.jp/~takeuchi/delphi/article/057/0572...
http://leed.issp.u-tokyo.ac.jp/~takeuchi/delphi/article/057/0572...
http://leed.issp.u-tokyo.ac.jp/~takeuchi/delphi/article/057/0573...
ポイントは、
xxxxxx := CreateOleObject('ProjectName.ClassName');
を使用するところにあるようです。
ちょうど、本日、Delphiをインストールしたのですが、あいにくVBが無くて、
確認とれません。すみません。
ありがとうございます。
VB製のActiveX DLLは、通常のDLLと同じように呼び出すことはできないということでしょうか。
どのような方法でも結構ですので、ご存知の方がいらっしゃいましたら、お願いします。
>「プロシージャエントリポイントが見つかりませんでした」
メッセージから察するに、そのDLLの中に、Delphiで宣言している関数が見つからなかった。という事ではないかと思います。
関数の宣言にスペルミスがないかどうか見直してみたらいかがでしょうか?
再回答ですみません。
>VB製のActiveX DLLは、通常のDLLと同じように呼び出すことはできないということでしょうか。
呼び出せる様です。
以下、ヒントとなるスレッドを記載します。
http://leed.issp.u-tokyo.ac.jp/~takeuchi/delphi/article/057/0572...
http://leed.issp.u-tokyo.ac.jp/~takeuchi/delphi/article/057/0572...
http://leed.issp.u-tokyo.ac.jp/~takeuchi/delphi/article/057/0572...
http://leed.issp.u-tokyo.ac.jp/~takeuchi/delphi/article/057/0572...
http://leed.issp.u-tokyo.ac.jp/~takeuchi/delphi/article/057/0573...
ポイントは、
xxxxxx := CreateOleObject('ProjectName.ClassName');
を使用するところにあるようです。
ちょうど、本日、Delphiをインストールしたのですが、あいにくVBが無くて、
確認とれません。すみません。
ありがとうございます。
Delphi製のDLLとは、全く違う呼び出し方をする必要があるのですね。
読んでみるとPersonal Editionでは、実行できないけれども、Professional Edition以上だったら、
xxxxxx := CreateOleObject('ProjectName.ClassName');
ができるみたいですね。
今、手元にPersonal Editionしかないので、試すことができないのですが、試す機会があったら試してみたいと思います。
では、Personal Editionでは呼び出すことができないのでしょうか?
ありがとうございます。
Delphi製のDLLとは、全く違う呼び出し方をする必要があるのですね。
読んでみるとPersonal Editionでは、実行できないけれども、Professional Edition以上だったら、
xxxxxx := CreateOleObject('ProjectName.ClassName');
ができるみたいですね。
今、手元にPersonal Editionしかないので、試すことができないのですが、試す機会があったら試してみたいと思います。
では、Personal Editionでは呼び出すことができないのでしょうか?