C++でつくったDLLを使うには


Ypapa  2003-02-02 18:32:22  No: 105981  IP: [192.*.*.*]

VBで、C言語のDLLで作ったプログラムを動かしたいのですが。
VB6,C/C++6をインストールしているPCでは動くのですが、インストールされていないPCにディストリビューションウィザードでインストールプログラムを作りインストールしても「実行時エラー53  ファイルが見つかりません。¥・・・¥***.DLL」となってしまいます。もちろんDLLの場所は何度も確認しました。
VBでは  Public Declare Function test1 Lib _
    "d:\test\test4\test4.dll" (ByVal ii As Integer) As Integer
Cではプロジェクト設定で出力ファイル名を  D:\test\test4\test4.dll
としています。
どなたかご存じの方いらっしゃいましたらよろしくお願いいたします。

編集 削除
Say  2003-02-02 22:21:40  No: 105982  IP: [192.*.*.*]

見つからない、と出る以上
パスが間違っている、としかいいようがありません。

編集 削除
nanashi  2003-02-03 00:17:02  No: 105983  IP: [192.*.*.*]

ディストリビューションでインストーラーを作るとき、DLLのインストールパスはどうなっていますか?
てゆーかフルパスで指定出来たっけ??

結論から言うとDeclare文でフルパスを指定するのは止めた方が良いです。
今回の例で言えば、Dドライブを用意していないユーザーはどうやったってパスは通らないですから。

Public Declare Function test1 Lib _
    "test4.dll" (ByVal ii As Integer) As Integer

という指定にして、カレントフォルダかシステムフォルダにDLLをインストールするようにして下さい。

編集 削除
とおりすがり  2003-02-04 13:38:27  No: 105984  IP: [192.*.*.*]

DLLのリンクについて…
DLLへのリンクは、実行ファイルが「実行」された時に行われます。実行ファイルはまず実行ファイルのあるフォルダからDLLを探し、カレントフォルダからDLLを探し、システムフォルダからDLLを探し、ウィンドウズフォルダからDLLを探します。
よって、レジストリ登録を行わないのであれば、カレントディレクトリにDLLと実行ファイルを置き、「nanashi」さんが述べたように宣言した方が面倒な事にならないのではないでしょうか?

編集 削除