上面那个[Dll... ]学过点.net的都知道是Attribute,是一种新东东好像Java里也没这个,算是.net原创的了(具体怎么用在csdn文档区见过一系相关文章请找一下)对于[Dll Import ……….]看一下MSDN:“ DllImportAttribute 属性提供对从非托管 DLL 导出的函数进行调用所必需的信息。作为最低要求,必须提供包含入口点的 DLL 的名称。”也就是说在.net里要使用一个像Windows Api所在的DLL或是普通基于Win32的DLL这样的库时都要像这种格式先用Attribute声明,然后.net系统就会知道这是一个非安全代码组成的程序,于是像下图这样进行调用。我个人认为这种方法并不是‘纯.net的方法’,只是能够让程序运行而已,是一种兼容的方法。换言之VCL.net在某种程度上说是兼容运行于.net平台的,并不是.net原生方式,或者说在一定程度上是以Win32程序的托管方式运行,所以………(纯属个人想法)。请参考下图:
(以下图及注解摘自MSDN.net)
当“平台调用”调用非托管函数时,它将依次执行以下操作:
平台调用会向托管调用方引发由非托管函数生成的异常。
总结: 这几天除了稍使用了一下Delphi8外,还到borland的以及一些vcl第3方供应商(devexpress.com)的newsgroup上看了一下,个人现在认为VCL.net(或者说Delphi for .net)能够让Delphi程序员比较省事的过度到.net平台进行开发。但这并不意味着我们就不用去学C#和.net framework,学这两样东西早晚的事,我看重要的还是学习.net framework。Microsoft现在把.net系统低层功能也用类库的方式实现,Microsoft下一代OS也是基于.net,到时像上面这种Windows Api调用能不能用还不得而知,估计就算能用也永远不是最好的办法了。所以个人估计Borland是不是在忙完了他的很长的产品线的更新换代以及发展像ECO这样高层技术后,是否考虑重新构造类库?D8中的BDP以及ECO算不是是新类库的冰山一角呢?还是Borland只是在局部做一些与Microsoft技术对应的东西,比如BDP-ADO.NET ECO-object Space 。
个人看来可以利用VCL.net的便利把以前的可能用于.net的VCL程序移植成.net的。然后还是用Delphi Language就着MSDN.net来学习如何运用.net frameWork吧。不过VCL或VCL.net由于开放源码,并且后者有很多地方与.net frameWork相结合,所以对于学习来说是很宝贵的资料,应该可以学习很多设计思路。
by ithink79
2003-12-25
上一页 [1] [2]
Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved. 闵涛 E_mail:admin@mintao.net(欢迎提供学习资源)
鄂公网安备 42011102001154号
站长:MinTao ICP备案号:鄂ICP备11006601号-18