作者Aurim (Who cares?)
看板C_Sharp
标题Re: [问题] C#编译完产生的DLL档,可以给Borland C+ …
时间Thu Sep 8 00:02:30 2005
※ 引述《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