学习怎么调用COM组件,INCLUDE和LIB都设了,但是用不出来,找不到NETMEETING的头文件,变量什么都没办法声明。
  
    后来仔细研究了别人的程序,发现包含的头文件是一个.h文件和一个_i.c文件,又仔细观察了NETMEETING的一个imsconf2.idl文件,发现几乎所有东西都在里边声明了,然后我就用midl将这个idl文件变成了h和c文件,生成了三个文件。    然后我包含其中的.h和_i.c文件,变量和参数真的都能识别了,但是,新的问题又来了,编译都最后剩了三个错误,连接错误,怎么也解决不了了,求各位大哥指点啊~~!,    这是救命的程序啊,我家底就剩40分了,但是还有个帖子,送人分的,那位大哥坚决不要,我在这里就给大家吧,去http://community.csdn.net/Expert/topic/3267/3267336.xml?temp=.3171808拿分就行    这就是剩下那三个最要命的错误了,求大哥们指点啊~!
    testha.obj : error LNK2005: _CLSID_NmManager already defined in StdAfx.obj    testha.obj : error LNK2005: _IID_INmManager already defined in StdAfx.obj
   
    Debug/testha.exe : fatal error LNK1169: one or more multiply defined symbols found
    Error executing link.exe.    试了包含其它生成的文件了,明显一看就是不对,里边连各种声明都没有

解决方案 »

  1.   

    _CLSID_NmManager _IID_INmManager 
    testha重复定义
    StdAfx中已经包含
      

  2.   

    语无伦次了
    StdAfx中已经包含_CLSID_NmManager _IID_INmManager 定义
    在testha 中 重复定义了一边
    你检查一把
      

  3.   

    我还没白痴到这种程度,
    {
    HRESULT hr;
    INmManager* m_pINmMgr;

        // Create a COM object from the Active Desktop coclass.
        hr = CoCreateInstance(CLSID_NmManager,NULL,CLSCTX_INPROC_SERVER,IID_INmManager,(VOID **)&m_pINmMgr);

        if ( SUCCEEDED(hr) )
    {
      

  4.   

    问题的原因是你的_i.c文件可能在别的头文件里包含,因为它没有防止头文件重复包含的宏,一般最好在.cpp文件里包含。
    或者你在包含此文件的地方这样写:
    #ifndef _MYXXX_I_C
    #define _MYXXX_I_C
    #include MYXXX_I.C
    #endif
      

  5.   

    http://community.csdn.net/Expert/topic/3272/3272945.xml?temp=.2244989
    欢迎大家来这里讨论,顺便顶一下
      

  6.   

    接口的句柄为什么不能创建成功,如果用小鱼的代码,__uuidof(****),NULL,....,__uuidof(***)  ,这样编译不会出错,但是句柄不能被创建,我想可能是因为CLSID_*** , IID_***,是一个接口的唯一标识吧,但是小鱼真的就这么用成功过小鱼代码:
    HRESULT hr = CoCreateInstance( __uuidof(Activity),
    NULL,
    CLSCTX_INPROC_SERVER,
    __uuidof(IROActivity),
    (void**) &oLog
          );但是如果用我的代码呢,hr = CoCreateInstance(CLSID_NmManager, NULL, CLSCTX_INPROC_SERVER, IID_INmManager, (void**)&g_pINmManager);就出了这个错误了:    testha.obj : error LNK2005: _CLSID_NmManager already defined in StdAfx.obj    testha.obj : error LNK2005: _IID_INmManager already defined in StdAfx.obj
       
        Debug/testha.exe : fatal error LNK1169: one or more multiply defined symbols found
        Error executing link.exe.学的真狼狈啊,自信和自尊完全被打击完了,这已经是研究使用COM组件的第三天,怎么都用不出来,就是一个NETMEETING!!