今天在 bdn 中看到一篇文章
http://bdn.borland.com/article/0,1410,32765,00.html
重要的部分摘抄如下
Resumen ejecutivo
• Los espacios de nombres no afectan a Delphi para Win32.
• Los espacios de nombres se producen en función del nombre de la unidad de la siguiente manera:
• Si un nombre de unidad está punteado, entonces se usa el nombre de la unidad hasta el último punto.
• Si no está punteado, entonces se usa el espacio de nombres predeterminado.
• Si no hay espacio de nombres predeterminado, entonces se usa el nombre de la unidad.
• El código convertido de Delphi 8 puede requerir algunas modificaciones.
• Siempre use paquetes, no bibliotecas para crear ensamblajes compartibles.
• Delphi siempre se referirá a los tipos por nombre completo de su unidad.
• Otros idiomas deberán referirse a los tipos utilizando su espacio de nombres.
• Las declaraciones de ASP.NET, los archivos de configuración y la reflexión de .NET siempre se refieren a los tipos por su espacio de nombres.
• Si varias unidades emiten un tipo público con el mismo nombre en el mismo espacio de nombres, el ensamblaje puede ser inutilizable
Borland siempre ha recomendado no utilizar proyectos de biblioteca para crear ensamblajes. En Delphi 2005, el compilador es más estricto y ya no le permitirá compilar una aplicación que hace referencia a una 'biblioteca' de Delphi.
Siempre use un proyecto de paquete para crear ensamblados .NET.
Sin embargo, como con cualquier cosa, hay excepciones a la regla y hay varias situaciones en las que necesita usar el espacio de nombres a pesar de que está codificando en Delphi.
Un ejemplo es cuando está utilizando etiquetas en archivos ASPX, ASCX o ASMX. Si crea una página web llamada Twebform en la aplicación de archivo.pages.webform1.pas, entonces la etiqueta de la página sería:
<%@Page lenguaje = "c#" codeBeHind = "webform1.pas" heredes = "Application.pages.twebform1"%> |
Otro es cuando se pasa información de tipo a .NET en forma de cadenas, especialmente cuando se usa API y archivos de configuración basados en reflexión:
var c: typeconverter; c: = ensamblaje.createInstance ('sample.controls.tconverter'); |
Esta ligera diferencia comúnmente recupera a las personas y es algo de lo que debe tener cuidado, especialmente cuando se transfiere el código de Delphi 8 o se convierte en código de otros idiomas.
这就解释了我原来的疑问 , 在 在 D2005 中 , 新建一个 .NET dll , 编译 , 在别的编译器中 (C#) , 可以使用 但是在 但是在 Delphi 中自己却不能用 , 虽然用薄可以解决问题 虽然用薄可以解决问题 虽然用薄可以解决问题 虽然用薄可以解决问题 虽然用薄可以解决问题 虽然用薄可以解决问题 虽然用薄可以解决问题 虽然用薄可以解决问题 虽然用薄可以解决问题 虽然用薄可以解决问题 虽然用薄可以解决问题 虽然用薄可以解决问题 虽然用薄可以解决问题 虽然用薄可以解决问题 虽然用薄可以解决问题 虽然用薄可以解决问题 虽然用薄可以解决问题 eléctrica eléctrica但是包中添加资源很不方便 真是不知道 真是不知道 borland 是怎么想的。