-PR-
締切り
済み

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

  • 困ってます
  • 質問No.57602
  • 閲覧数737
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 0% (0/4)

初心者で全然分からないので教えて欲しいのですが、色々出回っているようなVB用のDLLをDelphiで使用する方法はないのでしょうか?宜しくお願いします。
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全2件)

  • 回答No.1
レベル12

ベストアンサー率 41% (324/772)

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


  • 回答No.2
レベル13

ベストアンサー率 37% (331/872)

こんにちは、honiyonです。  大分前に質問されてますがもう解決されているのかな?(^^;  何となく見つけてしまったので回答してみたりします。  Delphi風に宣言するなら、以下のようになります。  function MessageBox(HWnd: Integer; Text, Caption: PChar; Flags:   Integer): Integer; std ...続きを読む
こんにちは、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固有の変数型を使用していなければ、この方法ですんなりロードして使えると思います。

 参考になれば幸いです(..
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ