比如TADOConnection对象作为参数传入COM里。

解决方案 »

  1.   

    采用接口,才是符合标准的。对象作为参数,本身就限定了COM组件使用范围。
      

  2.   

    如果是传TADOConnection,是可以的。因为TADOConnection实现了某个标准接口(很久都没接触数据库方面的程序开发了,记不清是什么接口),所以你只要已这个接口作为参数输入类型即可。看你的用途,指针是不行的。要看指针指向的数据类型?如果是对象:假设COM是delphi开发的,调用方为C++方面的程序。若是传指针进来,COM程序如何理解指针所指向的内存区块?C++和Delphi的对象布局是否一致?具体成员类型及大小,在内存排列,如何读取?
      

  3.   

    不建议传递这类型的对象,你的还如在COM里使用TADOConnection,然后传递一个数字库连接字串来的方便和实用。
    传递的参数最好就是整型和字符串类型(字符串最好也是用PChar代替,要不有时候就是乱码,原因未知,我吃过这亏)