我是Mac编程世界的新手。有人可以告诉我Mac中可重复使用的COM组件相当于什么,以及一些良好的资源开始链接(创建可重用的类COM组件并从调用应用程序引用这些组件)?谢谢。
澄清:
- 我想知道是否存在类似的技术,这在OS级别是受支持的
- 我问了这个问题,因为我想把我的一些应用程序(使用Windows中的现有类型库以及我制作的那些)移植到Mac上。
- 我是否有可能为现有的(Window)类型库创建包装类并从Mac应用程序中引用它们?
答案 0 :(得分:5)
我认为来自Mac开发中心的Getting Started with Interapplication Communication将是一个很好的起点。就整个操作系统而言,没有直接等同于COM / OLE,但XPCOM和CORBA可用于某些场景。
Distributed Objects Programming Topics可能是寻找传统Mac解决方案以让应用程序相互通信的最佳位置。
答案 1 :(得分:3)
嗯,有XPCOM。
答案 2 :(得分:3)
Cocoa / Objective-C对象几乎就是你所需要的。在更高的层次上,NIB可以在应用程序之间重用,尽管我认为这种做法并不广泛。
您可以为Interface Builder编写插件,以使用您自己的组件,如标准组件。
Apple Events和AppleScript是标准的IPC和脚本技术。
然而,与Windows世界中的COM不同,对于通过标准接口相互交互,存在标准容器,参与事务等的组件,实际上没有标准约定。类型库或IDL没有类似(虽然脚本词典可能会接近)。
答案 3 :(得分:3)
在Mac OS X中没有类似COM的东西(我假设你在谈论的是OS X,而不是经典的Mac OS)。如果你想编写可重用的组件或Cocoa应用程序,它实际上就是这么简单:
对于COM的iter-process通信和嵌入部分,没有任何标准化的,真的。
答案 4 :(得分:1)
您可能想查看Mono。虽然它不允许您直接重用现有的Windows特定COM代码,但它确实为您提供了跨不同编程语言(任何具有CLI编译器)的可重用组件的类似范例,甚至是不同的操作系统(例如,Windows, Mac,Linux)。
我还建议CocoaSharp直接连接到本机Mac OS X库。
答案 5 :(得分:0)
也许CFPlugin。
Core Foundation框架对象CFPlugin实现了一个小的 Microsoft组件对象模型(COM)标准的子集。 COM 允许您在面向对象中实例化C函数和数据 在运行时的方式。
它最初致力于插件架构,但它似乎可以用作COM等价物,请参阅“{3}}旧帖子和”Mac OS X高级开发技术“的第5章(Carbon插件)作者:Joe Zobkiw不幸的是我找不到更多的例子。