開発環境:WindowsXP, VC++6.0(MFC)
実行環境:Windows95/98
DB:Access97形式/ODBC接続
その他:MFCライブラリは共有DLLを使用
上記の条件でアプリケーションの開発をしております。
現在、WindowsXPおよび98(SE)で動作確認が済んだアプリを
Windows95環境で動作確認を実施したところ、
アプリが起動しませんでした。
色々調べたところ、
以下のバージョンのDLLを入手して
Win95のシステムフォルダへ格納することで
アプリが起動するようになりました。
・MFC42.dll (Ver.6.00.8267.0)
・msvcrt.dll (Ver.6.00.8337.0)
次に、MDBファイルにODBC接続するため、ODBCが必要なのですが、
Windows95にはODBCデータソースがインストールされていなかったため、
調査の末、MDAC2.5(SP3)を入手してインストールしたところ、
正常にMDBとDB接続することができるようになりました。
(MDACをインストールするためには、DCOM95も必要なので、
事前に入手してインストールしております。)
ここで、「DLLの配布」について疑問が出て来てしまいました。
当方で開発しているアプリと一緒に、
これらのライブラリファイルを配布することは可能でしょうか?
VC++6.0の「EULA.TXT」と「REDIST.TXT」は確認しました。
「MFC42.dll」と「msvcrt.dll」は、
「使用範囲を広げた再頒布可能コード」となっていました。
VC++6.0で開発したアプリと一緒に配布しても良いと解釈していますが、
もし違っていたらご指摘ください。
MDACについては、EULA.TXTに以下のように記載されていました。
「お客様がMDAC_TYP.EXEと指定されている
Microsoft Data Access Componentファイルを再頒布する場合、
お客様がマイクロソフトの開発ツール製品を使用して開発した、
MDAC_TYP.EXEに重要かつ主要な機能を追加するお客様のソフトウェア製品と共におよび
その一部として、
そのファイルをオブジェクトコードでのみ頒布しなければなりません。」
文章の読解力がないのか、どう解釈してよいものか・・・。
結局のところ、配布しても良いのでしょうか??
ご教授やアドバイス、よろしくお願いします。
回答にあらず
win95/98 って既にサポートが打ち切られているので使うべきではないと思うが。
セキュリティアップデートも出ないし、
「その Win95/98 を使っているユーザーは、セキュリティ意識が薄く、
自分のマシンが全世界にウイルスをばらまく踏み台にされてもかまわない」
と思っている、と解釈させていただく(インターネットにつなぐのであれば)
んでまじめに回答するなら
ライセンス系の質問は直接 Microsoft に問い合わせるべし。
こういう第三者の掲示板に挙げても「責任のある回答」など得られるわけもない。
俺たちが出した「テキトーな」答えをもって行動に移されても、誰も責任取れない。
んで責任は持たないけど以下の解釈で良いと思われる。
> 「MFC42.dll」と「msvcrt.dll」は、
> VC++6.0で開発したアプリと一緒に配布しても良い
Yes
mdac_typ.exe に関してはどうも日本語版 EULA.txt が読み取れないので
英語版 Visual C++ 6.0 の EULA.txt 4.1.3.2 の原文を検索。
4.1.3.2 Microsoft Data Access Components. If you redistribute the Microsoft
Data Access Component file identified as MDAC_TYP.EXE, you also agree to
redistribute such file in object code only in conjunction with and
as a part of a Licensed Product developed by you with a Microsoft development
tool product that adds significant and primary functionality to MDAC_TYP.EXE.
俺の勝手な翻訳
もし mdac_typ.exe として識別されるファイルを再配布するのであれば
・あなたが開発した製品プログラム(ライセンスを要する製品)と併せて、
その(製品の)一部として mdac_typ.exe をそのまま(改変せず)配布
・配布はオブジェクトコード(非ソースコード:つまり EXE/DLL/LIB として)のみ
(製品にあなたのソースコードを含んではならない、の意味だと思う)
・その製品プログラムは MDAC_TYP.EXE に機能を追加するものである
ということに同意しなければならない。
つまり MDAC を使うプログラムを配布する場合には mdac_typ.exe を配布してよい。
繰り返すが、俺はこの発言中のすべての文書に一切の責任を負わないので、
「ライセンスに関する問い合わせは直接 Microsoft の法務部門へ」
と強調しておく。
言いたい事に関してはほとんどtetrapodさんが言われていますが、
ライセンス問題に関しては特に文章の解釈が問題になるので
掲示板で質問しても同じような答えしか書き込まれないと思います。
最終的にはライセンスの発行元の解釈が正となるはずなので
掲示板でこう解釈されていたからと言う話は何の効力も持ちません。
特にお客様相手の場合、間違っていましたではすまないので
必ずマイクロソフトへ問い合わせを行う事をお勧めします。
発行元がその解釈で良いと言って来れば、少なくともそれを盾に
する事はできるはずですから。
その辺の話に関してはライセンス対応を業務にしている部署へ
きちんと確認しましょう。
tetrapodさん、PATIOさん
アドバイスありがとうございます。
やはりMicrosoftに直接問い合わせるべきですね。
皆さんがMicrosoftが発行する使用許諾に関する文書を
しっかり解釈して、ライブラリ配布をしているのかというところも
疑問でした。
やはり、解釈が難しければ、
その都度確認した上で配布しているのでしょうね。
サポート終了しているOSに関して、
Microsoftが適切に回答してくれるかどうか?の疑問も残りますが、
ひとまず解決とさせて頂きます。
ありがとうございました。