タイトル : Re^6: VisualStudioの設定のリセットについて 投稿日 : 2008/01/17(Thu) 11:07 投稿者 : たると
魔界の仮面弁士さんこんにちは、すべて解決するには時間がかかりそうなのでひとまず現状報告とお礼を言いたいのでメッセージを書き込ませていただきます。 > 警告されたファイルそのものではなく、そのファイルの依存情報が問題となります。 > > たとえば、C:\WINDOWS\SYSTEM32\MSCOMM32.DEP をメモ帳で開いてみてください。 > > COMDLG32.DEP を見ると、『MSCOMM32.OCX』というファイルが、 > 「COMCAT.DLL」と「MSCOMJP.DLL」に依存している事がわかります。 > > # 特に自作 DLL を利用している場合には、その DLL が使用しているファイル群の > # 依存情報が(セットアップ プロジェクトには)わからない可能性が高いでしょうね。 VB6.0ではDLLのファイルだけで動作していたため、今回も同じようにしていました。 依存関係のファイルがみつからなかったためエラーがでていたのですね。 ファイルの参照をしている場所に自作DLLのプログラムからXXX.DLLの作成をしたところ依存関係のあるファイルもきちんと作成されレジストリ関係のエラーがでなくなりました。 > > 2005でなにか代用できるようなものがあれば新しく作成したいと考えています。 > シリアルポートを通じて通信を行う必要がある場合には、VB2005 においては > System.IO.Ports.SerialPort クラスを利用する事ができます。 > > > 互換モードと言うのがよくわからないのですが、設定では「互換なし」となっていました。 > > これはなにか変更しないといけないのでしょうか?? > 今後一切、その DLL を再コンパイルしないというのであれば、互換なしでも良いですが、 > DLL の修正を行う可能性があるなら、「バイナリ互換」とする必要があります。 > > > たとえば、ActiveX DLL にバグがあったとして、それを修正したとしますよね。 > その時、DLL を更新したとしても、それを呼び出しているプログラムまで > 再コンパイルしなければならないとしたら……面倒ですよね。 > > そこで通常は、「前のバージョンと互換性を持った DLL」を作るわけです。 > そのため、配布用の DLL は『バイナリ互換』とするのが一般的かと。 > > そのかわりバイナリ互換にすると、メソッドの引数の数やデータ型を変更するとか、 > 不要になったプロパティを削除するなどの「互換性を損なう修正」はできません。 > > 互換なし …… 初回コンパイル時は、これを選ぶしかない。 > バイナリ互換 …… 配布用。最終的にはコレにする。 > http://support.microsoft.com/kb/161137/ja > > > > ActiveX DLL の IID、CLSID、ProgIDをどうやって取得するのかわかりません。 > VB6 の「互換なし」でコンパイルしている場合、IID や CLSID は、コンパイルするたびに > 変更されてしまう可能性がありますが、「バイナリ互換」の場合は維持されるのです。 > > そして、VB6 製の ActiveX DLL の場合、CLSID 等の値は、VB コンパイラによって > 自動的に決定されるため、基本的にはコンパイル後の DLL を調べることになります。 > (.NET 製の ActiveX DLL の場合は、CLSID 等の値を、ソース中にて指定できますが) > > なお、CLSID 等の調査には、Visual Studio に付属している OLEVIEW.EXE というツールが使えます。 これらについてはまだ勉強中です。なにか進展がありましたら、報告をさせていただきたいと思います。たくさんの質問に答えていただき、ありがとうございました。 |