VBでDLLを参照設定するには?

解決


立ち読み  2004-05-10 11:46:05  No: 113093  IP: [192.*.*.*]

VB6.0にてI/O制御を行う為に
Web上にUPされているDLLをダウンロードして
C:Windows\System32\にコピーした上で
VBメニュー▼プロジェクト▼参照設定  にて
DLLを参照設定しようと思うのですが、
ダイアログのチェック項目には載っていなく
参照ボタンからアドレスを選択して呼び出そうとすると
「指定されたファイルへの参照は出来ません」
とエラーが出てしまいます。

最初はDLLが悪いのだと思い、色々なDLLを落としたのですが
結果は同じです。
おそらく私の初歩的なミスの様な気がするのですが、気付きません。

どなたか宜しくお願い致します。

編集 削除
特攻隊長まるるう  2004-05-10 12:07:10  No: 113094  IP: [192.*.*.*]

過去ログを『レジストリ』で検索してください。

編集 削除
のん  2004-05-10 12:36:53  No: 113095  IP: [192.*.*.*]

DLLでエクスポートされた関数を使うには
>VBメニュー▼プロジェクト▼参照設定
じゃなく、VBのプロジェクト内でDECLAREステートメント
を使用します。
その上で特攻隊長さんのおっしゃっていることを考慮して下さい。

編集 削除
立ち読み  2004-05-10 12:47:09  No: 113096  IP: [192.*.*.*]

早速の御返答ありがとうございます。

すみません過去ログの見方を間違えていました。
とりあえずregsrv32 DLLを実行せねばならない様ですね。

解決しましたらまた御連絡させて頂きます。

編集 削除
立ち読み  2004-05-10 13:30:31  No: 113097  IP: [192.*.*.*]

………(T0T)すみません、解決出来ません。

MS-DOSプロンプトから
C:\WINDOWS\system32regsvr32 C:\WINDOWS\system32\Dio32s.dll

で実行するのですが、
「C:\WINDOWS\system32\Dio32s.dllは読み込まれましたが
  DLLレジスタサーバのエントリポイントが見つかりません。
  このファイルが登録されていない可能性があります。」

ってメッセージが出てきました。
………一応、簡単ActiveX登録が出来るFreeSoftも使ってみたのですが
結果は同じでした。

自分でも必死で調べている最中ですが、速攻で判る方が居られましたら
教えてください。

宜しくお願い致します。

編集 削除
うにぃ  2004-05-10 14:07:46  No: 113098  IP: [192.*.*.*]

おそらくそのDLLはActiveXではありません。
のんさんのおっしゃるようにDeclareステートメントを使用して、
DLLへの参照を宣言しなければならないと思います

そのDLLの使い方の説明書きのようなものはなかったのでしょうか?

編集 削除
立ち読み  2004-05-10 14:42:30  No: 113099  IP: [192.*.*.*]

このDLLはある書籍に付属していたCD内のDLLで
使用説明書どころか、それを使用したプログラムも
入っていました。

その付属プログラム(Declare使用)も、
自作のDeclareで宣言したプログラムも
走らせると、このDLLを使用する部分でVBが強制終了してしまいます。

その書籍はかなり大手出版社ですし、
かなり以前に作られてから、今でも普通に使われているので、
恐らく間違いは私のDLL又はレジスタの設定方法だと思うのですが…

編集 削除
魔界の仮面弁士  2004-05-10 15:37:57  No: 113100  IP: [192.*.*.*]

ActiveX DLLは、Regsvr32等でレジストリに登録する必要があります。

しかし、Declare宣言して使用するタイプのDLLの場合、それは
ActiveX DLLではありませんし、参照設定もできません。

(正確には、両対応のDLLもあったりしますけれどね)


> 走らせると、このDLLを使用する部分でVBが強制終了してしまいます。
書籍名も分かりませんし、どのようなコードを書かれているのかもわからないので、
確かな事は言えませんが、恐らくは、以下のいずれかではないかと。

・DLL自身に問題がある。(出版社からerrataが提供されていませんか?)
・DLLの使い方に問題がある。(プログラム上のコーディングミスとか)
・OSに依存したDLLである。(例えば、Win95では使えるけど、XPでは使えないとか)
・立ち読みさんの環境に問題がある。(他のPCがあれば、そちらで試してみてください)

編集 削除
ぴろあき  2004-05-10 15:49:52  No: 113101  IP: [192.*.*.*]

>Web上にUPされているDLLをダウンロードして
気になったので、「Dio32s.dll」で検索してみましたが、
下のページからダウンロードしたのでしょうか?
http://www.cqpub.co.jp/toragi/DLF/TR0212B.htm

<以下抜粋>
本プログラムはWin95/98/Meと,WinXPのWin98互換モードで動作します.
Win2000では動作しません
<以上抜粋>

とありますが、OSはどうなってます?

編集 削除
立ち読み  2004-05-10 16:41:22  No: 113102  IP: [192.*.*.*]

ダウンロードしたDLLは「ぴろあき」さんが書かれたアドレスに
ある物と全く同じ物です。

OSはWinXP[Pro]です。
とりあえず別のPC[Win98]で使用してみます。

編集 削除
立ち読み  2004-05-10 17:06:04  No: 113103  IP: [192.*.*.*]

すみません、問題は解決?しました。

どうやらOSの問題な様です。
Win98であっさり動きました。
他のWeb上でWinXPで動くとハッキリ書かれていたので
信じてしまっていました。(と言うか信じたかった)

アドバイスを下さった方、色々とありがとうございました。
私のDLLについての勘違いの連発でご迷惑をお掛けしました。

…最後にもしXPでバッチリ動くI/O制御DLLを知っている方居られます?
出来れば日本語解説付き or ソース有りの物で…

編集 削除
魔界の仮面弁士  2004-05-10 18:49:48  No: 113104  IP: [192.*.*.*]

で。「WinXPのWin98互換モード」ではどうだったのでしょうか。

コンパイルしてできたexeファイルを右クリックし、
[互換性]タブでWin98を選択しておいた場合、実行できますか?

編集 削除
test  2004-05-10 19:14:46  No: 113105  IP: [192.*.*.*]

google等の検索エンジンは使えないのですか?
http://www.vector.co.jp/soft/winnt/prog/se309575.html

編集 削除
立ち読み  2004-05-10 20:20:23  No: 113106  IP: [192.*.*.*]

情報ありがとうございます。

>「WinXPのWin98互換モード」
は強制終了にはならないのですが、
何故かポートから信号が出ませんでした。

「test」さんのご紹介してくださった物を試しました。
XPでもWin98でも動く事が確認できました。
責任者の方は「Dio32s.dll」のままが良いと言っていたのですが、
なんとかコレで行こうと思います。

色々とありがとうございました。

編集 削除