- PR -

Delphi8にて動的DLLの呼び出し方法

投稿者投稿内容
object
ぬし
会議室デビュー日: 2002/03/20
投稿数: 338
お住まい・勤務地: 香川県高松市
投稿日時: 2004-03-09 13:41
objectです。

途中で、
「LoadLibrary」と「GetModuleHandle」が出て来た為焦点が少し曖昧になったと思います。

これは参照カウントの関係もありますから、状況に応じてどちらかを使えば問題は無いと思います。
つまり、「LoadLibrary」と「GetModuleHandle」の呼出し自体には、大きな問題はないと私は感じています。
寧ろ、「ボーランド」のポインタに対するスタンス・実装に問題があって、「灼熱」さんの問題が発生しているのではないでしょうか?
#動的ロードと言いながら、静的ロードに変換されている様でもあります。

「灼熱」さんの最初の問いかけに対して、私は
@FunTest := Pointer(GetProcAddress(LibHandle,'FunTest'));// <==ここでエラー
と答えましたが、考えてみれば例えVCL.NETでのコードだとしても、「Pointer」キャストをしないとコンパイルすら出来ないという事自体、少し異常ですよね?
キーワード「unsafe」はありますが、これ無しで「Pointer」が使える事にも私は???です。
メソッドポインタに「デリゲート」で対応している様な説明がありますが、キーワードとしての「delegate」は無い様です。

最初私は、そんなに大きな問題では無いと思っていました。
でも今は、「VCL.NET」のポインタに対するスタンスと実装に、少し疑問を持っています。
私の勘違いと単なるバグの可能性も含めて、「Delphi.NET」に関してはもう少し詳しく知る必要がありそうですね。


[ メッセージ編集済み 編集者: object 編集日時 2004-03-09 14:44 ]
灼熱
会議室デビュー日: 2004/03/04
投稿数: 13
お住まい・勤務地: 山口
投稿日時: 2004-03-10 10:09
「object様」
返信ありがとうございます。

>>「LoadLibrary」と「GetModuleHandle」…(省略)…実装に、少し疑問を持っています。
う〜ん、私には少し難しい話ですが、この辺りも徐々に勉強して
いきたいと思います。

>>私の勘違いと単なるバグの可能性も含めて、「Delphi.NET」に関してはもう少し詳し
>>く知る必要がありそうですね。
はい、まだまだ「Delphi.NET」に関して知る必要がかなり要ると思います。
また、何か分かりましたら、ご連絡致します。
(一番数多い返信ありがとうございました。)
けんのん
会議室デビュー日: 2004/03/06
投稿数: 3
投稿日時: 2004-03-20 18:25
灼熱様

けんのんですが、ご返事遅くなってすみません。横道レスだったもので…。
Delphi 6になってから、DLLを自作で作っていなくて、手持ちのものがなかった
ので、適当にそのあたりにころがっている誰かが作ったDLL何種類かためして
みましたが、エラーは出ず、動作するようです。(ASP.NETのWeb App.で。)
6か7でコンパイルしたDLLを読み込んだら…
ということでしたら、ちょっとコンパイルしてやってみますが…。

今日は、朝から8と奮闘しているのですが、どう考えてもバグとして思われない
ようなものが何点か出てきて、Borland USAに行ってみたら、あるはあるは、
パッチが…。もう、すでに、アップデータの#2まで出ていて、
日本語版に英語のパッチあてるのは気が進まないのですが、ジャパンの対応を
待っているのもじれったいし、ジャパンはいい気なもんで、
「最新のアップデートはUSAにあります。」なんて言っているので、
さっきから、重いファイルをダウンロードしているところです。
今までの経験からすると、私が頻繁に使うくらいのレベルのバグは、
アップデータの#1、#2あたりで、つぶされているので、
楽しみではあります。
ではまた。

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