路径是对的,错误是这种。感觉像是配置的时候少东西了。
1>          due to following members:
1>          'HRESULT IUnknown::QueryInterface(const IID &,void **)' : is abstract
1>          c:\program files\microsoft sdks\windows\v7.0a\include\unknwn.h(116) : see declaration of 'IUnknown::QueryInterface'
1>          'ULONG IUnknown::AddRef(void)' : is abstract
1>          c:\program files\microsoft sdks\windows\v7.0a\include\unknwn.h(120) : see declaration of 'IUnknown::AddRef'
1>          'ULONG IUnknown::Release(void)' : is abstract
1>          c:\program files\microsoft sdks\windows\v7.0a\include\unknwn.h(122) : see declaration of 'IUnknown::Release'

解决方案 »

  1.   


    路径是对的,错误是这种。感觉像是配置的时候少东西了。
    1>          due to following members:
    1>          'HRESULT IUnknown::QueryInterface(const IID &,void **)' : is abstract
    1>          c:\program files\microsoft sdks\windows\v7.0a\include\unknwn.h(116) : see declaration of 'IUnknown::QueryInterface'
    1>          'ULONG IUnknown::AddRef(void)' : is abstract
    1>          c:\program files\microsoft sdks\windows\v7.0a\include\unknwn.h(120) : see declaration of 'IUnknown::AddRef'
    1>          'ULONG IUnknown::Release(void)' : is abstract
    1>          c:\program files\microsoft sdks\windows\v7.0a\include\unknwn.h(122) : see declaration of 'IUnknown::Release'看样子你是用ATL建了一个activeX控件。你是怎么用在MFC程序里的,能说下步骤吗,或者给出代码也行。这些提示,说明不了什么问题。
      

  2.   

    一般都不用引用头文件的,只要import "xxx"no_namespace
      

  3.   


    路径是对的,错误是这种。感觉像是配置的时候少东西了。
    1>          due to following members:
    1>          'HRESULT IUnknown::QueryInterface(const IID &,void **)' : is abstract
    1>          c:\program files\microsoft sdks\windows\v7.0a\include\unknwn.h(116) : see declaration of 'IUnknown::QueryInterface'
    1>          'ULONG IUnknown::AddRef(void)' : is abstract
    1>          c:\program files\microsoft sdks\windows\v7.0a\include\unknwn.h(120) : see declaration of 'IUnknown::AddRef'
    1>          'ULONG IUnknown::Release(void)' : is abstract
    1>          c:\program files\microsoft sdks\windows\v7.0a\include\unknwn.h(122) : see declaration of 'IUnknown::Release'看样子你是用ATL建了一个activeX控件。你是怎么用在MFC程序里的,能说下步骤吗,或者给出代码也行。这些提示,说明不了什么问题。我是看VC知识库的那个《COM实用入门教程》里讲的方法。
    步骤很简单:
    用MFC创建一个ALT项目,写上名字,然后所有的设置都不用改,直接创建。
    再添加一个类,选择ATL简单对像,添加上一个COM控件,写上名字,其他的设置也不用改。(PS:测试的时间需要在控件上添加上方法,这里没有添加)
    编译,会自会注册COM控件。
    然后,就是在MFCk上测试COM控件,就是在stdafx.h中引用 com名.h 文件 ,stdafx.cpp中添加 com名_i.c 文件,就可以正常使用控件了。
    就这几步,教程里用提VC2005,我用VC2005做的时候,也没有问题,不过用VC2010的时候就出现问题了。VC2010在添加com控件的时候需要界面是一样的话,但有一点小小的不现,就是VC2005在给com控件加上名字的时候,其他所有的属性都会有默认的名字,不过VC2010有一个属性值不会有默认的名字,就是ProgID。
      

  4.   


    我看过用这方法的教程,都是用VC6.0作为实例,我用这种方法在VC2010上试,照样也不行。不知道VC2010是不是对COM的使用有什么改变
      

  5.   


    额,这个我已经查过了。VC6.0和2005都已经可以用了,只是2010出问题。VC2010+COM的资料确实比较少
      

  6.   

    http://blog.csdn.net/jia_xiaoxin/article/details/3944889
      

  7.   


    我看过用这方法的教程,都是用VC6.0作为实例,我用这种方法在VC2010上试,照样也不行。不知道VC2010是不是对COM的使用有什么改变他说的是用#import导入.tlb文件,这个办法没问题。VS2010应该没那么水吧,多半是自己使用的有问题。
      

  8.   

    使用VC 6.0
    FileTool.exe 替换打开和添加到项目中 Visual C++ 的新功能 http://support.microsoft.com/kb/241396/zh-cn
      

  9.   

    COM 是二进制的调用规范。
    所有版本的VC、所有开发语言编译出的COM都一样用。