トップ回答者
Vista+VB6でWIN.TLBが無いというエラー

質問
-
Windows Vista Business 32bitを職場に導入しました。
目的は、既存のソフト(WindowsXP Pro SP2で動作していたもの)をVistaへ移行させるためです。
(なぜか2行目からフォントの大きさが変わるのですが、ちゃんと表示できるのかな・・・・)
基本的に全ての環境をインストールしましたが、XPで動いていたVB6ソフトを走らせたところ、
WIN.TLBが無いためAPIが動作しないことが分かりました。
XPでは、C:\Windows\System32 に、 WIN.TLB があったのですが、
Vistaではこのファイルが無いようです。
単純に、XPパソコンからコピーして使用すればいいのでしょうか?
回答
-
MHINO さんからの引用 XPでは、C:\Windows\System32 に、 WIN.TLB があったのですが、
Vistaではこのファイルが無いようです。
Windows XP SP2にもそのようなファイルはありません。
何らかの手段でコピーされたのではないでしょうか。(インストーラ?手動?アップグレード?VB6の付属品?)
MHINO さんからの引用 単純に、XPパソコンからコピーして使用すればいいのでしょうか?
そのファイルを入手した際のライセンス、再頒布条項に基づいて下さい。
そろそろ新しい手法に差し替えることも検討した方が良いかもしれませんが…。
-
うーん、いまひとつはっきりしないんですが。
WIN.TLB(もしくはWINU.TLB)は、どうもBruce McKinneyさんの書かれた「Hardcore Visual Basic Second Edition」の付録CDで提供されているタイプライブラリのような気がします。
1998年4月版のmsdn Library(日本語版)にこの書籍が未翻訳のまま丸ごと電子書籍として格納されたことがありますので、ここからMHINOさんのシステムに流用されたのかもしれません。
私の手元にはもう当時のmsdn Libraryがありませんので、確認はできないんですが。
(Windows98のリソースキットCDに格納されている、という情報もあります。)いずれにせよタイプライブラリは開発環境でのみ必要なファイルであり、コンパイル後のexe実行時には不要です。
ライセンスも開発環境へのコピーに関してのみで、実行環境への再頒布が許可されることはありません(必要もありません)。ので、WIN.LIBの原典をあたり、開発環境へのコピーを認める旨の確認をとれば十分です。
文面から察するに、VB6のIDE(開発環境)からの実行に失敗しているんだと思うんですが、この理解でよろしいでしょうか。
現行XPで動作しているEXEを直接Vistaにコピー(またはインスト)して実行させれば、WIN.TLBがなくとも動作すると思います。---
また、もし上述のWIN.LIBであれば、中身はWin32APIの宣言集です。
「Declare文を書くのが大変な人は、このタイプライブラリを参照すれば簡単だよー」
という目的で提供されたもののようです。
ですから、WIN.LIB経由でコールしているAPIを洗い出し、その挙動がVista上で期待通りかの確認を取る必要があるように思います。
確認の結果によっては、WINU.TLB(Unicode版、WIN.LIBはANSI版)に差し替える、または改めてDeclare文で置き換えてやるという対処法が必要になる可能性があります。
すべての返信
-
MHINO さんからの引用 XPでは、C:\Windows\System32 に、 WIN.TLB があったのですが、
Vistaではこのファイルが無いようです。
Windows XP SP2にもそのようなファイルはありません。
何らかの手段でコピーされたのではないでしょうか。(インストーラ?手動?アップグレード?VB6の付属品?)
MHINO さんからの引用 単純に、XPパソコンからコピーして使用すればいいのでしょうか?
そのファイルを入手した際のライセンス、再頒布条項に基づいて下さい。
そろそろ新しい手法に差し替えることも検討した方が良いかもしれませんが…。
-
うーん、いまひとつはっきりしないんですが。
WIN.TLB(もしくはWINU.TLB)は、どうもBruce McKinneyさんの書かれた「Hardcore Visual Basic Second Edition」の付録CDで提供されているタイプライブラリのような気がします。
1998年4月版のmsdn Library(日本語版)にこの書籍が未翻訳のまま丸ごと電子書籍として格納されたことがありますので、ここからMHINOさんのシステムに流用されたのかもしれません。
私の手元にはもう当時のmsdn Libraryがありませんので、確認はできないんですが。
(Windows98のリソースキットCDに格納されている、という情報もあります。)いずれにせよタイプライブラリは開発環境でのみ必要なファイルであり、コンパイル後のexe実行時には不要です。
ライセンスも開発環境へのコピーに関してのみで、実行環境への再頒布が許可されることはありません(必要もありません)。ので、WIN.LIBの原典をあたり、開発環境へのコピーを認める旨の確認をとれば十分です。
文面から察するに、VB6のIDE(開発環境)からの実行に失敗しているんだと思うんですが、この理解でよろしいでしょうか。
現行XPで動作しているEXEを直接Vistaにコピー(またはインスト)して実行させれば、WIN.TLBがなくとも動作すると思います。---
また、もし上述のWIN.LIBであれば、中身はWin32APIの宣言集です。
「Declare文を書くのが大変な人は、このタイプライブラリを参照すれば簡単だよー」
という目的で提供されたもののようです。
ですから、WIN.LIB経由でコールしているAPIを洗い出し、その挙動がVista上で期待通りかの確認を取る必要があるように思います。
確認の結果によっては、WINU.TLB(Unicode版、WIN.LIBはANSI版)に差し替える、または改めてDeclare文で置き換えてやるという対処法が必要になる可能性があります。