- 締切済み
異なる言語同士(VBとCなど)のプログラムを呼ぶ方法、dllの作成法
VBから自作のCプログラムを呼び出したいです。 ダイナミックリンクライブラリ(dll)を使わない解もあるのでしょう。 私は、Cのダイナミックリンクライブラリ(dll)を自作して、Cから呼び出す方法を探りました。 VCの新規作成メニュに、Win 32 Dynamic-Link Libraryがあるので、これを使えばいいのではと思うのですが、ソースでどう宣言したらいいのか、それをCから、またVBから、どのように呼び出すかがわかりません。WinAPIのように宣言して使うのかなと思うのですが。 なお、.NETでない解決法を知りたいです。 ご存知の方よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- taka_tetsu
- ベストアンサー率65% (1020/1553)
>その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 こんなキーワードで調べるとサンプルは出てくると思います。
- todo36
- ベストアンサー率58% (728/1234)
DLLと言ってもAPIでやる方法とCOM(ActiveX.DLL)でやる方法があります。 後者がお勧めです。 詳しくはネットで検索して。
お礼
todo36さん お答えありがとうございます。 詳しくはネットで検索して とのことですが、 どんなサイトがお勧めですか?
- taka_tetsu
- ベストアンサー率65% (1020/1553)
>WinAPIのように宣言して使うのかなと思うのですが。 そのとおりです。 自分でDeclareステートメントを記述してください。 >ダイナミックリンクライブラリ(dll)を使わない解もあるのでしょう。 あとは、ActiveXEXEをCやC++で作るくらいでしょうかね。
お礼
taka_tetsuさん お答えありがとうございます。 ちょっと込み入った追加質問で申し訳ありません。 もしご存知でしたら教えてください。 Declareステートメントを使うのは、 VBから呼び出す場合ですね。 そのdllはどこか決まったディレクトリ(ystem32?)におくのでしょうか? また、Cから呼び出す場合、どう書けばいいでしょうか? 簡単なコーディング例があればうれしいです。
お礼
taka_tetsuさん ありがとうございます。 サイトを紹介していただいたので、これから調べてみます。