最新閲覧日:

初心者で全然分からないので教えて欲しいのですが、色々出回っているようなVB用のDLLをDelphiで使用する方法はないのでしょうか?宜しくお願いします。

A 回答 (2件)

こんにちは、honiyonです。


 大分前に質問されてますがもう解決されているのかな?(^^;
 何となく見つけてしまったので回答してみたりします。

 Delphi風に宣言するなら、以下のようになります。

 function MessageBox(HWnd: Integer; Text, Caption: PChar; Flags:   Integer): Integer;
stdcall;
external 'user32.dll'
name 'MessageBoxA';

 これは、Windowsの MessageBox関数(API)を読み込んだ例です。
 MessaeBox関数の宣言をして、
 external [ロード元のDLL]
name [ロード元の関数名];

 です。 stdcall; は呼びだし規約指定です。 大抵(というか標準)では stdcall;です。

 この方法を用いて宣言すると、実行時にDLLが自動的にロードされます。 
 もし必要なタイミングで読み込みたい場合は、LodLibraryや、GetProcAddressを使って下さい。 使い方はWin32APIと一緒なので、詳しくはWin32APIのヘルプを参照してください。

 以上が DLLのロード方法です。 基本的に開発言語が何であろうが「DLL」という規則に沿ったものならロード可能です。 ただし、その言語に依存する形式の変数などを使われると厄介です。 たとえば、Delphiでいうとstring型ですね。 これは Delphi固有の変数です。 他の言語からでもロード出来るようにしたければ PCHAR型を使う事になります。
 その VBで作った DLLが、VB固有の変数型を使用していなければ、この方法ですんなりロードして使えると思います。

 参考になれば幸いです(..
    • good
    • 0

私はDelphi使いではないので試したことは


ありませんが、「About Delphi」のサイトで
Delphi-MLの過去ログを検索してみては
如何でしょうか?

参考URL:http://www2.big.or.jp/~osamu/Delphi/
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード


このカテゴリの人気Q&Aランキング

おすすめ情報

カテゴリ