如题,如果是这样的话,那么QueryInterface是有谁来实现呢?VC的编译环境并不知道我要如何安排接口的分布,来使得QueryInterface能否工作,
那么这项工作是如何完成的?

解决方案 »

  1.   

    用import语句导入一个dll,生成的包装类智能指针,为什么不再需要QueryInterface?http://topic.csdn.net/u/20101104/16/330fcdd4-81ab-491a-817c-b4b0ef7cc9bf.html你可以使用系统为你生成的智能指针,但是生命周期不好控制,而自定义的则不然,需要调用时再加载,不需要了就立即释放,相比较而言更节省系统资源,但要维护的代码较多。
      

  2.   

    1、当使用 ATL 时,由于你的 C++ 类通常是从一些类(例如 CComModule)派生而来,这些基类已经为你实现了你所说的那些基本接口管理代码。2、当你使用 VC 向导(也可以手工完成)为你的类添加接口时,向导为生成一些接口映射代码(参见 INTERFACE_PART 相关的宏),这些代码将你的接口链接起来构成一个列表,并在基类的 QueryInterface 函数中自动查找相应的接口。所以,这一切你都不需要关心,只需把精力放在如何实现接口的功能上。