2011-01-31 6 views
1

私はここ数年の間に最近プログラムを学び始めましたが、そのすべてはC#.NETにありました。私はDLLファイルが.NETの前に存在していることを知っていますので、私が今作成する.NET DLLファイルとそれ以前に存在していたCOM DLLファイルとの間に類似点があるかどうかを知りたいと思っています。言い換えれば、.NETの前に.NETで作成した.NET DLLを取得してCOM開発者に渡すと、ファイルから情報を派生させることができますか?それとも、彼らはよく知っている拡張子を持つばかげたファイルのように見えるでしょうか?今のところ応答のための拡張子以外のCOM DLLと.NET DLLの間に類似点はありますか?


更新

感謝。 EXEファイルはどうですか? .NET EXEとCOM EXEの間に類似点はありますか? .NETをインストールしたコンピュータでも.NET exeのエントリポイントを見つけることができますか、それとも単にファイルが壊れているか無効であると思われますか?

答えて

4

類似性、したがって同じエクステンションの再利用は、それらが機能的に同等であるということです。つまり、どちらも、潜在的に共有されるメソッドとクラスを含むクラスライブラリです。

ただし、.NET DLLがCOMで表示されていない場合は、COM開発者は有用な情報を得ることができません。

EDIT:あなたのアップデート毎

、インストールされている.NETのないマシン(または一つでも.NET Frameworkの必要なバージョンなし)、アプリケーションのエントリポイントを見つけることができるだろうが、それはすぐに例外が発生する(つまり、実際に何かをする前に)失敗するでしょう。

1

何も対応がありません。 .NETアセンブリはデータファイルで、5バイトのマシンコードが含まれています。残りはメタデータとILです。 ildasm.exeやReflectorのように、それを逆コンパイルするツールがなくても十分気をつけてください。

+0

実際、.NETアセンブリはPEファイル形式に従います。だから、それは単に "データファイル"ではありません。 –

+0

Sigh。これはPE32ファイル形式で、5バイトのコードしか含まず、残りはデータです。 –

+0

にはPEフォーマットの多くが含まれています - エクスポート、セクションなど。さらに、5バイト以上のアンマネージドコードが含まれることがあります。 –

関連する問題