VB6.0にてI/O制御を行う為に
Web上にUPされているDLLをダウンロードして
C:Windows\System32\にコピーした上で
VBメニュー▼プロジェクト▼参照設定 にて
DLLを参照設定しようと思うのですが、
ダイアログのチェック項目には載っていなく
参照ボタンからアドレスを選択して呼び出そうとすると
「指定されたファイルへの参照は出来ません」
とエラーが出てしまいます。
最初はDLLが悪いのだと思い、色々なDLLを落としたのですが
結果は同じです。
おそらく私の初歩的なミスの様な気がするのですが、気付きません。
どなたか宜しくお願い致します。
過去ログを『レジストリ』で検索してください。
編集 削除DLLでエクスポートされた関数を使うには
>VBメニュー▼プロジェクト▼参照設定
じゃなく、VBのプロジェクト内でDECLAREステートメント
を使用します。
その上で特攻隊長さんのおっしゃっていることを考慮して下さい。
早速の御返答ありがとうございます。
すみません過去ログの見方を間違えていました。
とりあえずregsrv32 DLLを実行せねばならない様ですね。
解決しましたらまた御連絡させて頂きます。
………(T0T)すみません、解決出来ません。
MS-DOSプロンプトから
C:\WINDOWS\system32regsvr32 C:\WINDOWS\system32\Dio32s.dll
で実行するのですが、
「C:\WINDOWS\system32\Dio32s.dllは読み込まれましたが
DLLレジスタサーバのエントリポイントが見つかりません。
このファイルが登録されていない可能性があります。」
ってメッセージが出てきました。
………一応、簡単ActiveX登録が出来るFreeSoftも使ってみたのですが
結果は同じでした。
自分でも必死で調べている最中ですが、速攻で判る方が居られましたら
教えてください。
宜しくお願い致します。
おそらくそのDLLはActiveXではありません。
のんさんのおっしゃるようにDeclareステートメントを使用して、
DLLへの参照を宣言しなければならないと思います
そのDLLの使い方の説明書きのようなものはなかったのでしょうか?
このDLLはある書籍に付属していたCD内のDLLで
使用説明書どころか、それを使用したプログラムも
入っていました。
その付属プログラム(Declare使用)も、
自作のDeclareで宣言したプログラムも
走らせると、このDLLを使用する部分でVBが強制終了してしまいます。
その書籍はかなり大手出版社ですし、
かなり以前に作られてから、今でも普通に使われているので、
恐らく間違いは私のDLL又はレジスタの設定方法だと思うのですが…
ActiveX DLLは、Regsvr32等でレジストリに登録する必要があります。
しかし、Declare宣言して使用するタイプのDLLの場合、それは
ActiveX DLLではありませんし、参照設定もできません。
(正確には、両対応のDLLもあったりしますけれどね)
> 走らせると、このDLLを使用する部分でVBが強制終了してしまいます。
書籍名も分かりませんし、どのようなコードを書かれているのかもわからないので、
確かな事は言えませんが、恐らくは、以下のいずれかではないかと。
・DLL自身に問題がある。(出版社からerrataが提供されていませんか?)
・DLLの使い方に問題がある。(プログラム上のコーディングミスとか)
・OSに依存したDLLである。(例えば、Win95では使えるけど、XPでは使えないとか)
・立ち読みさんの環境に問題がある。(他のPCがあれば、そちらで試してみてください)
>Web上にUPされているDLLをダウンロードして
気になったので、「Dio32s.dll」で検索してみましたが、
下のページからダウンロードしたのでしょうか?
http://www.cqpub.co.jp/toragi/DLF/TR0212B.htm
<以下抜粋>
本プログラムはWin95/98/Meと,WinXPのWin98互換モードで動作します.
Win2000では動作しません
<以上抜粋>
とありますが、OSはどうなってます?
ダウンロードしたDLLは「ぴろあき」さんが書かれたアドレスに
ある物と全く同じ物です。
OSはWinXP[Pro]です。
とりあえず別のPC[Win98]で使用してみます。
すみません、問題は解決?しました。
どうやらOSの問題な様です。
Win98であっさり動きました。
他のWeb上でWinXPで動くとハッキリ書かれていたので
信じてしまっていました。(と言うか信じたかった)
アドバイスを下さった方、色々とありがとうございました。
私のDLLについての勘違いの連発でご迷惑をお掛けしました。
…最後にもしXPでバッチリ動くI/O制御DLLを知っている方居られます?
出来れば日本語解説付き or ソース有りの物で…
で。「WinXPのWin98互換モード」ではどうだったのでしょうか。
コンパイルしてできたexeファイルを右クリックし、
[互換性]タブでWin98を選択しておいた場合、実行できますか?
google等の検索エンジンは使えないのですか?
http://www.vector.co.jp/soft/winnt/prog/se309575.html
情報ありがとうございます。
>「WinXPのWin98互換モード」
は強制終了にはならないのですが、
何故かポートから信号が出ませんでした。
「test」さんのご紹介してくださった物を試しました。
XPでもWin98でも動く事が確認できました。
責任者の方は「Dio32s.dll」のままが良いと言っていたのですが、
なんとかコレで行こうと思います。
色々とありがとうございました。