Re: [問題] C#編譯完產生的DLL檔,可以給Borland C+ …
※ 引述《bhjbi (Guest)》之銘言:
: C#編譯完產生的DLL檔,可以給Borland C++ Builder使用嗎?
: 請問如果不行,有沒有什麼解法可以提示呢?謝謝!!
這個問題現在來答,可能會有點晚,不過有需要的人還是可以參考參考:
1. .NET framework在System.* namespace裡的物件幾乎都有實作COM interop,
所以可以在BCB裡頭import它們的type library
2. 然後,透過System.Reflection namespace的Assembly.Load()載入指定的
C# assembly DLL
3. 透過Assembly.GetTypes()取得該DLL內所有class/interface,
或者透過Assembly.GetType()直接取得指定名稱的物件類別或介面
如此一來,如果你要使用的.NET class是個Windows form user control,
或者是Windows form,那就可以用有實作COM interop的UserControl或Form
來操作它們了。如果有什麼特別的操作是UserControl或Form本來沒有的,
就透過送Message來進行吧。
以上是在想著如何做出一個很短小的ActiveX control,自動載入.NET smart client
時想到的。.NET寫smart client很方便,可是客戶端不見得有裝.NET framework,
所以我把偵測有無.NET framework與自動安裝的工作交給ActiveX control,裝好後
再由這個ActiveX control載入指定的smart client.
另外一方面,它當然也可以先把smart client抓到客戶端再執行,這樣就可以做到
更多原本smart client被限制不能做的事情了。
這樣的ActiveX control本身檔案應該不大,.NET smart client通常也很小。只有
沒裝.NET的客戶端在第一次執行這東西時會花很久時間,以後啟動就快了。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.140.44.231
C_Sharp 近期熱門文章
PTT數位生活區 即時熱門文章
14
39