今天在 Bdn 中看到一篇文章
http://bdn.borland.com/article/0,1410,32765,00.html
重要的部分摘抄如下
Управляющее резюме
• Пространства имен не влияют на Delphi для Win32.
• Пространства имен производятся на основе имени блока следующим образом:
• Если имя блока усеяно, используется имя устройства до последней точки.
• Если это не пунктирно, то используется пространство имен по умолчанию.
• Если нет пространства имен по умолчанию, тогда используется имя устройства.
• Код, преобразованный из Delphi 8, может потребовать некоторых модификаций.
• Всегда используйте пакеты, а не библиотеки для создания совместных сборок.
• Delphi всегда будет ссылаться на типы по своему полному названию подразделения.
• Другие языки должны будут ссылаться на типы, используя их пространство имен.
• Объявления ASP.NET, файлы конфигурации и отражение .NET всегда относятся к типам их пространства имен.
• Если несколько подразделений испускают публичный тип с одним и тем же именем в одно и то же пространство имен, сборка может быть не подлежащим использованию
Борланд всегда рекомендовал не использовать библиотечные проекты для создания сборки. В Delphi 2005 компилятор является более строгим и больше не позволит вам собирать приложение, ссылаясь на библиотеку Delphi '.
Всегда используйте проект пакета для создания сборки .NET.
Однако, как и во всем, есть исключения из правила, и есть несколько ситуаций, когда вам нужно использовать пространство имен, даже если вы кодируете в Delphi.
Одним из примеров является то, что вы используете теги в файлах ASPX, ASCX или ASMX. Если вы создаете веб -страницу с именем TwebForm в файле Application.pages.webform1.pas, то тег страницы будет:
<%@Page language = "c#" codebehind = "webform1.pas" inherits = "application.pages.twebform1"%> |
Другой - при передаче информации типа в .net в форме строк, особенно при использовании API на основе отражения и файлов конфигурации:
var c: typeconverter; c: = Assembly.createInstance ('sample.controls.tconverter'); |
Эта небольшая разница обычно тренирует людей, и это то, чем вам нужно быть осторожным, особенно при портировании кода из Delphi 8 или конвертации кода из других языков.
这就解释了我原来的疑问 , 在 D2005 中 , 新建一个 .net dll , 编译 , 在别的编译器中 (c#) , 可以使用 , delphi 中自己却不能用 , 虽然用薄可以解决问题 ,但是包中添加资源很不方便 , 真是不知道 Borland 是怎么想的。