[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[jfriends:00109] Re: Microsoft C#



-----------------------------------------------------------------[PR]---
                     『 eSampoして、深呼吸しよ 』
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
        無料のメールアドレス&プレゼント三昧でハートウォーキング
___  クリックしたら暮らしが変わる→ http://www.easyml.com/686.php3
-PR------------------------------------------------------------------PR-


上原です。

Hiroshi Kuno <hkuno@xxxxxxxxxxxxxxxx> writes:
  > > オブジェクトがCOMになる、という記述があった(というか
  > > そういう風に読めた)ので、Windows専用?と思っていたんですが、
  > > そういえば、COMはプラットホーム非依存でしたね。
  > 
  > おお、なるほど。
  > C#の実行コードがクロスプラットホームなのではなくて、
  > C#で作った object が COM になるのでOS・言語独立ということか。
  > そっちの方が可能性高いです。

そうですね。僕もそう思います。またintrotoc.docからの引用ですが、

Namespaces and assemblies

      .........

   There are two main kinds of assemblies: applications and
   libraries. Applications have a main entry point and usually have a
   file extension of .exe; libraries do not have a main entry point, and
   usually have a file extension of .dll.

      .........

   The code we have written can be compiled into a library containing the
   class HelloMessage and an application containing the class
   HelloApp. The details of this compilation step might differ based on
   the compiler or tool being used. Using the command-line compiler
   provided in Visual Studio 7.0, the correct invocations are

     csc /target:library HelloLibrary.cs 

   which produces the class library HelloLibrary.dll and 

     csc /reference:HelloLibrary.dll HelloApp.cs

   which produces the application HelloApp.exe. 

--------(拙訳)

   主な部品(アセンブリ)には2種類あります:アプリケーションとライブラ
   リです。 アプリケーションはメインエントリポイントを持ち、通常ファイ
   ル拡張子「.exe」を持ちます。ライブラリはメインエントリポイントを持
   たず、通常ファイル拡張子「.dll」を持ちます。

   我々が書いたコードは、クラス HelloMessage を含んでいるライブラリと
   クラス HelloApp を含んでいるアプリケーションにコンパイルされます。 
   このコンパイルステップの細部はコンパイラあるいは使用しているツール
   によって異なるかもしれません。 Visual Studio 7.0が提供するコマン
   ドラインコンパイラを使う場合、正しい実行方法は以下のとおりです。

     csc /target:library HelloLibrary.cs 

   これはクラス・ライブラリ HelloLibrary.dll を生成します。

     csc /reference:HelloLibrary.dll HelloApp.cs

   これはアプリケーション HelloApp.exe を生成します
---------

とあり、exeとdllが出来るようですが、きっとこのdllはアウトプロセスのCOM
オブジェクトがtype libraryとともに含まれており、regsvr32とかでdllとし
てシステムに登録できるんじゃないかと思います。

ただまあ、そうであってもnativeコードではなく中間コードインタプリタでは
ありうるわけですが。

いずれにせよ、C#でIDLとかGUIDとかtype libraryとかATLとかを意識せずに
COMを使えるのなら、かなり良さげです。

--
§NTTS○FT 技術開発部エレクトロニックコマース技術センター 上原 潤二 §
PGP Key fingerprint = B7 C0 CB 1F 1C 88 69 2A  25 36 8A EE 93 A3 61 72