プロが教えるわが家の防犯対策術!

Cで作成されたDLLがあるのですが、VBから参照設定しても「指定されたファイルへの参照は登録できません。」と怒られます。
そのようなDLLをどうしてもVBから使用したい場合はどうすれば良いでしょうか?

直接は無理だとしても、間に何かをかましてできると思うのですが、良い方法があれば教えてください。

ちなみに VB6 です。

よろしくお願いします。

A 回答 (5件)

>あります。


>とりあえず、DLLファイルと同様に C:\WINNT\System32 フォルダへ格納しました。

となるとやはりVBから直に呼び出すことはできません。
DLLでもスタティックリンクで使うものがあり
VC++からは呼び出すことができます。
そこでVBから呼び出すには間にクッションをおく必要があります。
VB←VC++で作ったDLLを呼び出すDLL(クッション)←元のDLL

.hや.libはVC++でスタティックリンクする際に必要となる
ファイルでVBからは使用できません。
    • good
    • 0

***.dllの他に***.hとか***.libとかついてなかったですか?

この回答への補足

あります。
とりあえず、DLLファイルと同様に C:\WINNT\System32 フォルダへ格納しました。

補足日時:2003/04/12 08:18
    • good
    • 0
この回答へのお礼

↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
「しました」というか、既に「しています」です。

お礼日時:2003/04/12 17:53

ちょっと古い情報ですが、URL載せておきます。



「VBから呼出可能なようにDLLを作る」ということがなされているかどうかを確認してください。
Declareを使っても呼び出せないものもあります。

間に何かかませるとしたら、ActiveXのラッパーなどをかませればVBから呼び出せるようになりますが、これはC/C++でつくる必要がありますからねぇ。手間はあまり変わらないでしょう。

また、DLLが他のDLLを参照している場合、実行時エラー53がでることもあるのでそちらの線も洗ってみてください。

参考URL:http://homepage2.nifty.com/DSS/VCPP/DLL/dllvbcal …
    • good
    • 0

 


> 実行時エラー'53':
> ファイルが見つかりません:hoge.dll

パスが通ってないだけでしょう。
hoge.dllを下記のどこかに移動してみては?

(1) %SystemRoot%
(2) %SystemRoot%\System32
(3) %SystemRoot%\System
(4) %Path% のどこか
(5) App.Path
 

この回答への補足

何度もありがとうございます。最後までお付き合いください。m(_ _)m

> パスが通ってないだけでしょう。
> hoge.dllを下記のどこかに移動してみては?

こちらで試したことを書くべきでした。

そう思いまして、C:\WINNT\System32 においてみましたが、同じなのです。
フルパス指定でも同じでした。

DLLはDeclareすれば、必ず使えるものなのでしょうか?

補足日時:2003/04/09 19:42
    • good
    • 0

 


(1) そのDLLがCOM(ActiveX)コンポーネントなら、
  RegSvr32 "DriveName:\....Path....\FileName"
  を実行してみる。

(2) COMでないなら、Declare 宣言する。

この回答への補足

> (1) そのDLLがCOM(ActiveX)コンポーネントなら、
  RegSvr32 "DriveName:\....Path....\FileName"
  を実行してみる。

COMコンポーネントではありません。
試しにやってみましたが、以下のエラーになりました。

LoadLibrary("C:\WINNT\System32\hoge.dll")failed - 指定されたモジュールが見つかりません。

> (2) COMでないなら、Declare 宣言する。

これもやってみたのですが、エラーになるのです。

実行時エラー'53':
ファイルが見つかりません:hoge.dll

DLLはDeclareすれば、必ず使えるものなのでしょうか?

補足日時:2003/04/09 18:50
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A