VC6で作成したDLL(他の人が作成して正常に動作していることは確認ずみ)を自分のVBで取り込もうとするとエラーになります。
(エラー53で”ファイルがない”と言ってきます)
同じ宣言を別のプログラムでは扱えました。
VB側に何か設定はあるのでしょうか?
MSDNのHELPを見ても違いがわかりませんでした。
よろしくお願いします。
ファイルがないというエラーはそうそうなさそうですねぇ…。
DLLなら、パスの通ったフォルダかWindowsフォルダ、Systemフォルダ、
ソフトと同じフォルダ(この場合VB6本体?)のどれかなら、
DLLを読み込めると思いますけど…。
フルパス指定してみてください。
じつは、
Public Declare Function ImgInit Lib "C:\Test\Bin\ImgCtl.dll" ( _
ByVal nAccuracy As Long, _
ByVal nSpeed As Long, _
ByVal dCertainty As Double, _
ByVal nFactor As Long, _
ByVal dAcceptance As Double, _
ByVal nLevel As Long) _
As Long
と宣言していますが、プログラムではImgInitを使うと“ファイルがない”と
言ってきます。 宣言したディレクトリにはファイルがあるのですが・・・・。
windowsフォルダに移してもダメでした。(当然、宣言も変更しました)
VBが壊れたかと疑りたくなります。
VCで作成したDLL自体が使用しているDLLを参照出来ない場合も
同様のエラーメッセージが表示されます。
その辺りは大丈夫でしょうか?
ImgCtl.dll を Dependency Walkerで開くと
参照出来てないDLLがあるとひと目で分かります。
1度確認してみてはどうでしょう?
Dependency WalkerはVC6がインストールされていれば
入っていると思います。
なければ、ネットで検索してください。
そんなツールがあるとは知りませんでした。
早速、チェックしてみます。
ありがとうございました。
DLL内部で別のDLLを呼んでいるようでした。
皆さん(特にあき☆彡さん) ありがとうございました。
ツイート | ![]() |