该ActiveX控件A是基于CWnd的,如果在对话框容器中加入这个控件,该控件显示成为一个可以操作的多个按钮和下拉框的集合,并产生工程B。
我将在这个工程B中的生成的.h和.cpp文件,加入到另外一个COM工程C中去(由于不能用拖拽的方式将A控件引入到C中),然后编译发生错误,
错误类型为 window.h already include  MFC app cannot include windows.h
这个问题如何处理,是不是我不能够用这种方式将这个控件A加入到COM工程C中去?

解决方案 »

  1.   

    window.h 已经被包含了无需#include "window.h "
      

  2.   

    C不是MFC的工程?可以用
    #import "...\a.dll"
      

  3.   

    A是ocx的。 
    A是基于CWnd,所以需要MFC的支持。
    而ATL COM工程C没有支持MFC。
    如果在.h中加入include "afxwin.h" 就会出现 
    错误类型为 window.h already include MFC app cannot include windows.h刚才根据MSDN的 
    http://support.microsoft.com/default.aspx?scid=kb;en-us;173974
    How To Add MFC Support to an ATL Project
    做了一遍好像没有效果,在.h文件中还是找不到CWnd的定义。我想问的是,
    1.这种从其他文件中拷贝两个文件过来加入另外一个工程的方法是否能够行得通?
    2..h文件中加了include stdafx.h之后为什么找不到CWnd? 
    stdafx.h中已经include afxwin.h了。
      

  4.   

    这是因为你的COM工程不支持MFC引起的。
      

  5.   

    最后用了
    #import "\a.dll"的方式了。