bdn中看到一篇文章
http://bdn.borland.com/article/0,1410,32765,00.html
重要的部分摘抄如下
エグゼクティブサマリー
•名前空間は、Win32のDelphiには影響しません。
•名前空間は、次のようにユニット名に基づいて生成されます。
•ユニット名が点在する場合、最後のドットまでのユニット名が使用されます。
•点線がない場合、デフォルトの名前空間が使用されます。
•デフォルトの名前空間がない場合、ユニット名が使用されます。
•Delphi 8から変換されたコードには、いくつかの変更が必要になる場合があります。
•ライブラリではなくパッケージを常に使用して、共有可能なアセンブリを作成します。
•Delphiは、常に完全なユニット名でタイプを参照します。
•他の言語は、名前空間を使用してタイプを参照する必要があります。
•ASP.NET宣言、構成ファイル、および.NET反射は、常に名前空間でタイプを参照してください。
•複数のユニットが同じ名前のパブリックタイプを同じ名前空間に排出する場合、アセンブリは使用できない場合があります
ボーランドは、図書館プロジェクトを使用してアセンブリを作成しないことを常に推奨しています。 Delphi 2005では、コンパイラはより厳しく、Delphiの「ライブラリ」を参照するアプリケーションをコンパイルすることができなくなります。
常にパッケージプロジェクトを使用して、.NETアセンブリを作成してください。
ただし、何と同様に、ルールには例外があり、Delphiでコーディングしている場合でも名前空間を使用する必要がある状況がいくつかあります。
1つの例は、ASPX、ASCX、またはASMXファイルでタグを使用している場合です。ファイルapplication.pages.webform1.pasでtwebformというWebページを作成すると、ページタグは次のとおりです。
<%@page Language = "c#" codebehind = "webform1.pas" enternits = "application.pages.twebform1"%> |
もう1つは、特に反射ベースのAPIと構成ファイルを使用する場合、文字列の形でタイプ情報を.NETに渡すときです。
VAR C:TypeConverter; c:= assembly.createinstance( 'sample.controls.tconverter'); |
このわずかな違いは、一般的に人々をつまずかせており、特にDelphi 8からコードを移植したり、他の言語からコードを変換する場合に注意する必要があるものです。
这就解释了我原来的疑问、在、d2005中、新建一个、.net dll、编译、在别的编译器中(c#)、可以使用、但是在、但是在、虽然用薄可以解决问题、虽然用薄可以解决问题、虽然用薄可以解决问题、虽然用薄可以解决问题、但是包中添加资源很不方便、真是不知道ボーランド是怎么想的。