(我初学COM、ATL,请大家指点,谢谢!)   我需要实现一个官方发布的接口"opcda.idl","opcda.idl"不允许修改,并且由"opcda.idl"文件产生的Proxy/Stub dll(opcproxy.dll)官方也已经发布。
   我用ATL新建了一个工程"OPCDAServer",是组件类型是EXE,则向导自动生成了一个IDL文件"OPCDAServer.idl"。
   现在我需要建立一个新类,来实现"opcda.idl"中的接口,如果我直接向新类中添加接口时,请问我该怎么做,如何处理Proxy/Stub dll?

解决方案 »

  1.   

    把你自己的接口在idl中继承opcda  比如 A:oopcda
    然后在你的接口实现中,实现你定义的这些方法,缺一不可,空的也行
      

  2.   

    仍有以下两个问题,不知道如何解决:
        1.接口的名称和IID变了,原来在"opcda.idl"中定义的接口名称和IID是固定的,不能变动,因为这是一个规范,否则客户就不能和组件程序通过接口来进行通信了。
        2.我必须使用由官方发布的"opcdaproxy.dll"作为我的组件程序的proxy-stub dll,如果重新生成自己的idl文件的话,就得使用自己的idl文件所产生的proxy-stub dll。
      

  3.   


    自己控制包含就可以了。至于原有的IID,直接抄到自己的源码中即可解决。
      

  4.   

    在你的OPCDAServer.idl里,库定义外写一句import "opcda.idl",然后在coclass定义中加上opcda.idl中的官方接口就ok了。