- 締切済み
DelphiでVB用のDLLを使えないでしょうか?
初心者で全然分からないので教えて欲しいのですが、色々出回っているようなVB用のDLLをDelphiで使用する方法はないのでしょうか?宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- honiyon
- ベストアンサー率37% (331/872)
こんにちは、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)
私はDelphi使いではないので試したことは ありませんが、「About Delphi」のサイトで Delphi-MLの過去ログを検索してみては 如何でしょうか?