描述:
1、COM和动态连接库有区别,我知道,但COM又是以DLL体现,难道COM可以当作动态连接库用?如果能,他们在运用上有什么区别?
2、COM是跟语言无关,那么COM怎么又能开发出有界面的控件?那么如果在其他语言(除VB)中又怎能用这个控件?这难道脱离了语言无关吗?
3、ACTIVEX究竟是个什么玩意?
4、COM的接口定义有个“[out]”,我知道它是用来输出。但是怎么输出的?(注:它不同“[retval]”连用。最好举个例子说明。
谢谢~~~~~~~~
分不够再加~~~~~~~~
解决方案1:
因为注册时,COM的一些信息就会登记到注册表中
然后当你的客户程序要调用COM时只要给出相应的一些信息
比如:INTERFACE ID系统跟注册信息就会自动找到组件所以位置,对它进行实例化
>>1、我们创建对象实例时,这个组件必须是注册了的。
为什么实例创建以后还要在注册表中注册呢?
要先注册,才能创建实例
》》2、接口线程模式中的单线程、多线程和Apartment有什么区别??
套间是一个边界。通常采用套间线程。
楼上的都说的差不多了
解决方案4: 1、COM和动态连接库有区别,我知道,但COM又是以DLL体现,难道COM可以当作动态连接库用?如果能,他们在运用上有什么区别?
com其实只是使用dll的动态连接的性质。com是一种编程方法。。
2、COM是跟语言无关,那么COM怎么又能开发出有界面的控件?那么如果在其他语言(除VB)中又怎能用这个控件?这难道脱离了语言无关吗?
com的语言无关是指com组件可在兼容com的语言中使用。。
3、ACTIVEX究竟是个什么玩意?
严格来说。activex只是实现了一部分特定接口的,可自注册的com组件。通常是指activex控件
4、COM的接口定义有个“[out]”,我知道它是用来输出。但是怎么输出的?(注:它不同“[retval]”连用。最好举个例子说明。
out就像指针那样输出的。retval是指该参数作为返回值,这个对每个语言的实现可能不通。比如java和vb是函数返回值,而vc中是out参数返回