• 締切済み

異なる言語同士(VBとCなど)のプログラムを呼ぶ方法、dllの作成法

VBから自作のCプログラムを呼び出したいです。 ダイナミックリンクライブラリ(dll)を使わない解もあるのでしょう。 私は、Cのダイナミックリンクライブラリ(dll)を自作して、Cから呼び出す方法を探りました。 VCの新規作成メニュに、Win 32 Dynamic-Link Libraryがあるので、これを使えばいいのではと思うのですが、ソースでどう宣言したらいいのか、それをCから、またVBから、どのように呼び出すかがわかりません。WinAPIのように宣言して使うのかなと思うのですが。 なお、.NETでない解決法を知りたいです。 ご存知の方よろしくお願いします。

みんなの回答

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.3

>そのdllはどこか決まったディレクトリ(ystem32?)におくのでしょうか? WindowsではこのAPIが検索する順番にファイルが検索されます。覚えておくべきでしょう。 SearchPath http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpfileio/html/_win32_searchpath.asp ここの1~6のどこかにおく必要があります。 もしくは、DeclareステートメントでDLL名を記述する際に、 フルパスで記述します。 >また、Cから呼び出す場合、どう書けばいいでしょうか? >簡単なコーディング例があればうれしいです。 VBはActiveXDLLやActiveXEXEなどにする必要があります。 で、これを呼ぶにはCよりもC++が楽ですというか、Cだとちょっとつらいですよ。 googleで、 #import VB DLL こんなキーワードで調べるとサンプルは出てくると思います。

tomkuni
質問者

お礼

taka_tetsuさん ありがとうございます。 サイトを紹介していただいたので、これから調べてみます。

  • todo36
  • ベストアンサー率58% (728/1234)
回答No.2

DLLと言ってもAPIでやる方法とCOM(ActiveX.DLL)でやる方法があります。 後者がお勧めです。 詳しくはネットで検索して。

tomkuni
質問者

お礼

todo36さん お答えありがとうございます。 詳しくはネットで検索して とのことですが、 どんなサイトがお勧めですか?

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

>WinAPIのように宣言して使うのかなと思うのですが。 そのとおりです。 自分でDeclareステートメントを記述してください。 >ダイナミックリンクライブラリ(dll)を使わない解もあるのでしょう。 あとは、ActiveXEXEをCやC++で作るくらいでしょうかね。

tomkuni
質問者

お礼

taka_tetsuさん お答えありがとうございます。 ちょっと込み入った追加質問で申し訳ありません。 もしご存知でしたら教えてください。 Declareステートメントを使うのは、 VBから呼び出す場合ですね。 そのdllはどこか決まったディレクトリ(ystem32?)におくのでしょうか? また、Cから呼び出す場合、どう書けばいいでしょうか? 簡単なコーディング例があればうれしいです。

関連するQ&A