今天在bdn中看到一篇文章
http://bdn.borland.com/article/0,1410,32765,00.html
重要的部分摘抄如下
執行摘要
•名稱空間不會影響Win32的Delphi。
•基於單位名稱產生名稱空間,如下:
•如果點了一個單位名稱,則使用到最後一個點的單位名稱。
•如果未點綴,則使用默認名稱空間。
•如果沒有默認名稱空間,則使用單位名稱。
•從Delphi 8轉換的代碼可能需要進行一些修改。
•始終使用軟件包而不是庫來創建可共享的組件。
•Delphi將始終通過其完整單位名稱參考類型。
•其他語言需要使用其名稱空間引用類型。
•ASP.NET聲明,配置文件和.NET反射總是通過其名稱空間引用類型。
•如果多個單元在同一名稱空間中散發出具有相同名稱的公共類型,則該組件可能無法使用
Borland始終建議不要使用圖書館項目來創建組件。在Delphi 2005中,編譯器更加嚴格,不再允許您編譯引用Delphi“庫”的應用程序。
始終使用軟件包項目創建.NET組件。
但是,與任何內容一樣,該規則有例外,即使您在Delphi中進行編碼,也需要在幾種情況下使用命名空間。
一個示例是,當您在ASPX,ASCX或ASMX文件中使用標籤時。如果在文件application.pages.webform1.pas中創建一個名為twebform的網頁,則頁面標籤為:
<%@page Lakenagy =“ C#” CodeBehind =“ WebForm1.pas” shartasits =“ application.pages.twebform1”%> |
另一個是將類型信息以字符串形式傳遞給.NET時,尤其是在使用基於反射的API和配置文件時:
var c:typeconverter; c:= assembly.createinstance('sample.controls.tconverter'); |
這種輕微的差異通常會絆倒人們,您需要注意的是,尤其是從Delphi 8移植代碼或從其他語言轉換代碼時。
這就解釋了我原來的疑問,在d2005中,新建一個.net dll,編譯,在別的編譯器中(c#)但是包中添加資源很不方便,真是不知道borland是怎麼想的。