[英]access managed code ( CLR ) DLL with Delphi 7
delphi7如何訪問C#.net管理的dll?
我正在嘗試訪問一些用c#編譯的DLL,它們不是那些舊式DLL。 (我沒有這些DLL的來源)
我確實試圖在網上搜索,但他們很困惑。 我猜即使用D7訪問它也有一些限制。
謝謝。
@AngryHacker,對於你的建議是真的,.NET程序集需要用ComVisibleAttribute(啟用COM Interop選項注冊)標記,並使用[ComVisible(true)]將每個函數公開給COM。
如果您嘗試使用第三方程序集(您沒有編寫),則必須與供應商核實是否可以通過COM使用該程序集。
此外,程序集不需要強名稱可通過COM訪問。
如果您不想使用COM方式,請查看CrossTalk for Delphi: http : //www.atozed.com/CrossTalk/Docs/index.EN.aspx
Delphi7以與任何其他基於COM的語言(例如VB6)相同的方式訪問托管DLL。
基本演練是這樣的:
現在Delphi7應該能夠引用由regasm
生成的TLB文件,就像任何其他基於COM的DLL一樣。
這根本不難。 如果你不想,你不必“詛咒”它。 你根本不必注冊任何COM-ish。
通過使用C#或其他托管語言創建包裝器,您將獲得最佳服務。 哦,確保你的課程是可見的(真實的)。 這個Stack Overflow線程很好地總結了它,並且它通過一組用於不同場景的示例來實現。 使用/不使用JCL在Delphi中托管CLR - 示例
如果您無法更改原始DLL的源代碼,則可以使用C#或Prism編寫代理,以公開可在項目中使用的com接口。 這種方法的優點是您可以定制每個調用,只使用您可以輕松處理的特定類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.