Com组件有什么用解决办法

Com组件有什么用
标题是瞎搞的,用来吸引眼球的,真正的问题是这个:

1.不用Com组件,调用不同语言编写的dll会出问题吗?原因呢?
2.如果dll遵循C语言规范,那函数调用应该没有问题的。类的导出仿造Com,导出一个CreateObject函数,Create一个对象,返回其实现的一个接口,通过这个接口操作对象难道会出现问题吗?如果不会的话,那就不知道问什么要用Com了。

目前看Com原理,目前只熟悉C++、delphi,不清楚其他语言dll如何,因此有点不解。
现在对dll导出的函数较为了解,包括函数名的修饰等,但对导出类还不是很清楚,还望提示一下不同语言下导出类的内存结构如何?

------解决方案--------------------
导出函数是C语言样式,其他语言的函数调用与C语言不同,就无法使用了。因为这是语言级别的兼容问题。
COM定义接口而不实现接口,交给类去实现,保证使用接口的客户端程序不变。
------解决方案--------------------
COM是ABI的一种形式。不过这种做法比较啰嗦,微软正在放弃对COM的支持。

目前另外一种比较流行的ABI做法就是Java中的JNI,CORBA也算是。

扯到ABI,或多或少总是有点啰嗦的。