• 締切済み

DelphiでVB用のDLLを使えないでしょうか?

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

みんなの回答

  • honiyon
  • ベストアンサー率37% (331/872)
回答No.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固有の変数型を使用していなければ、この方法ですんなりロードして使えると思います。  参考になれば幸いです(..

  • selenity
  • ベストアンサー率41% (324/772)
回答No.1

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

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

関連するQ&A