调用了一个com组件的ui 界面,想用另外一个按钮调用这个com组件的unload 方法,可是如何才能获得刚才那个已创建的com对象的实例呢?

解决方案 »

  1.   

    在h 文件中引用mycom_i.h 和mycom_i.c 后会出现编译错误1>testComDlg.obj : error LNK2005: _IID_ICCalUI 已经在 testCom.obj 中定义
    1>testComDlg.obj : error LNK2005: _LIBID_MiniCalLib 已经在 testCom.obj 中定义
    1>testComDlg.obj : error LNK2005: _CLSID_CCalUI 已经在 testCom.obj 中定义
    1>D:\VC.NET\testCom\Debug\testCom.exe : fatal error LNK1169: 找到一个或多个多重定义的符号
      

  2.   

    直接#import tlb类型库或者dll文件。
      

  3.   

    按钮所在的类和com组件所在类之间有什么关系?
    如果不在一个类里,向com组件所在的类发消息,调用unload方法
      

  4.   

    编译没问题了我的com 组件是显示一个非模态对话框,我的关闭方法是在com 里把对话框指针定义为成员变量,然后添加一个方法来调用
    m_pUIDlg->CloseWindow();
    m_pUIDlg->DestoryWindow();
    delete m_pUIDlg;
    不过这个方法在VB中调用没问题,可是在VC 中调用会出错
      

  5.   

    跟踪了下,原来是 delete m_pUIDlg 时出错.因为原来这个对话框是new 出来的,所以想关闭后delete 掉,为什么会出错呢?