tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^3: 便乗質問:Side by Side
投稿日: 2008/02/25(Mon) 09:54
投稿者魔界の仮面弁士
> ScriptingオブジェクトとShellオブジェクトは.Net Frameworkの標準品では
> ないということでしょうかね。あえて.Net Frameworkの構成物から除いている?

標準物ではありません。

それらのオブジェクトは、.NET テクノロジの産物ではなく、それ以前にある
COM(ActiveX)テクノロジと呼ばれる技術の産物であり、.NET 非対応言語である
非.NET な VBScript, Excel VBA, JScript, Delphi 等からも利用できる代物です。

Scriptingオブジェクトの歴史は、VB6 よりもさらに前、Internet Explorer 3.0 の
時代には、既に存在していました。
もう一方の Shell オブジェクトの方はそれよりも少し新しく、シェル統合実装と
呼ばれていた Windows 95/OSR 2.1 や Windows 98、あるいは Internet Explorer 4.0 の
時代に登場しました。
両者ともに .NET よりも古くからあるオブジェクトです。


.NET から COM を扱う場合、相互運用アセンブリ(IA:Interop Assembly)と呼ばれる
ライブラリを中継する事になります(その分、.NET用ライブラリよりも効率が落ちます)。
Interop.Scripting.dll や Interop.Shell32.dll は、Visual Studio から COM を
参照設定したときに自動的に生成される .NET 用ライブラリですが、役割としては、
そうした「COM と .NET の間を取り持つ中継役」にあたるラッパー(wrapper)です。


ちなみに IA には、自動生成されるものだけではなく、グローバル アセンブリ キャッシュ
(GAC)と呼ばれる領域にインストールされる、Microsoft らによって事前に用意された
検証済み/電子署名済みの「プライマリ相互運用機能アセンブリ」(PIA)と呼ばれる物も
あります。(たとえば、Excel 用の Microsoft.Office.Interop.Excel.dll など)


なお PIA は、Microsoft による正式なサポートを受けることができますが、
IA の方は自動生成されるライブラリという事もあって、動作は保証されていません。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。