|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
首先第一点:jsp,servlet,javabean这些最基本的,嘿嘿,就算你是高手的话,在大行的企业级应用的话还是需要框架的,一个好的框架确实能构解决许多问题。今朝COM编程仍旧活泼在Windows平台上,但C++的新变种使得它更容易于利用。它叫做C++组件扩大(ComponentExtensions),新的Windows运转时WinRT就是用这类新言语创立的。
只管C++组件扩大仍是基于COM,但它与.NET编程十分相似。也就是说,你能够间接对类和对象举行操纵,而不必要经由过程COM接口。
C++组件起首要创立一个大众类,并用“publicrefclassXXXsealed”的情势来界说,个中“XXX”是类名。如许声明的类叫做“可激活的类(activatableclass)”,能够供.NET和基于JavaScript的使用程序利用。“ref”关头字暗示类是一种“与Windows运转时兼容的范例”。“sealed”关头字避免它被别的类承继,假如一个类想要被JavaScript利用,这是需要的前提。只管文档没有明白申明,但仿佛假如不从JavaScript利用,就不必要利用“sealed”关头字来声明类。比方,Button类就承继了ButtonBase。除撑持类以外,C++组件扩大还撑持布局体。但是Windows运转时布局体仅限于裸数据成员(nakeddatamembers)利用。
类中大概会包括机关函数、办法、属性和事务。在类自己以外,你大概发明事务会利用“delegate”关头字。只管这不是C++大概CLI,但出人意料的是,这个语法利用“^”标记来停止。
在C++组件扩大中,内存是基于它所利用的言语的语义来区分处置的。假如C++使用程序利用了程序库,那末对象就会以援用的情势盘算。固然,.NET消耗程序会利用mark-and-sweep的渣滓接纳机制。
私有办法是经由过程ABI(笼统二进制接口AbstractBinaryInterface)表露出来的。如许的办法必需利用Windows运转时范例作为参数。C++的内建范例——像int和double——会主动转换,而其他范例的转换都必需举行显式地声明。关于那些利用了Platform::String作为参数范例的大众办法,微软倡议在办法外部应利用尺度的C++字符串范例。
经由过程ABI没法撑持自界说的非常范例。开辟者必需抛出一种内建的非常范例。假如还必要分外的信息,我们能够抛出一样平常的COMException,它会利用HRESULT作为参数。
只管JavaScript撑持的类都要带有关头字“sealed”,但它最少还能够完成接口。
检察英文原文:C++ComponentExtensions:TheNewFaceofCOM
译者侯伯薇是InfoQ中文站架构社区编纂,有多年对日和国际项目开辟履历,今朝存眷企业中手艺与实践营业之间的交融和合作。
在ruby里才是一切皆对象。当然我不并不是很了解ruby,但是ruby确实是将语法简化得很好。 |
|