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
としています。
どなたかご存じの方いらっしゃいましたらよろしくお願いいたします。
見つからない、と出る以上
パスが間違っている、としかいいようがありません。
ディストリビューションでインストーラーを作るとき、DLLのインストールパスはどうなっていますか?
てゆーかフルパスで指定出来たっけ??
結論から言うとDeclare文でフルパスを指定するのは止めた方が良いです。
今回の例で言えば、Dドライブを用意していないユーザーはどうやったってパスは通らないですから。
Public Declare Function test1 Lib _
"test4.dll" (ByVal ii As Integer) As Integer
という指定にして、カレントフォルダかシステムフォルダにDLLをインストールするようにして下さい。
DLLのリンクについて…
DLLへのリンクは、実行ファイルが「実行」された時に行われます。実行ファイルはまず実行ファイルのあるフォルダからDLLを探し、カレントフォルダからDLLを探し、システムフォルダからDLLを探し、ウィンドウズフォルダからDLLを探します。
よって、レジストリ登録を行わないのであれば、カレントディレクトリにDLLと実行ファイルを置き、「nanashi」さんが述べたように宣言した方が面倒な事にならないのではないでしょうか?