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

解決


立ち読み  2004-05-10 20:46:05  No: 113093

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

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

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


特攻隊長まるるう  2004-05-10 21:07:10  No: 113094

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


のん  2004-05-10 21:36:53  No: 113095

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


立ち読み  2004-05-10 21:47:09  No: 113096

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

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

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


立ち読み  2004-05-10 22:30:31  No: 113097

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

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

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

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

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

宜しくお願い致します。


うにぃ  2004-05-10 23:07:46  No: 113098

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

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


立ち読み  2004-05-10 23:42:30  No: 113099

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

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

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


魔界の仮面弁士  2004-05-11 00:37:57  No: 113100

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

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

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

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

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


ぴろあき  2004-05-11 00:49:52  No: 113101

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

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

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


立ち読み  2004-05-11 01:41:22  No: 113102

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

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


立ち読み  2004-05-11 02:06:04  No: 113103

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

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

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

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


魔界の仮面弁士  2004-05-11 03:49:48  No: 113104

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

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


test  2004-05-11 04:14:46  No: 113105

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


立ち読み  2004-05-11 05:20:23  No: 113106

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

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

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

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


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加