我用VB里写了一个ACTIVEX DLL;
其中,在VB中,Project Name是:XLCOM,Class Name 是:MyMSMQ
我在VB中调用该ACTIVEX DLL成功;
在VB中我是用:Dim AA as new XLCOM.MyMSMQ
但是在MFC中,我不知道如何去调用这个COM;谁能告诉我,怎样在VC中如何使用 ProgID来创建一个OBJECT?

解决方案 »

  1.   

    不会吧?一般都是在VC写好DLL,然后在VB里边调。
    你这倒过来。没有试过。 :D
      

  2.   

    you can use #import directiveor http://support.microsoft.com/support/KB/Articles/Q178/7/49.asp
      

  3.   

    可以的,VB生成的ActiveX DLL,同时还有XXX.TLB
    用VC打开VB的XXX.TLB,就可以使用VB中的COM了
      

  4.   

    同意masterz地。 用#import 很方便地。
      

  5.   

    masterz的方法好象不行的,COM,在VC中必须 使用下面两中方法之一
    1、使用VC中的COM访问技术,如采用前绑定技术如下:
       IDispatch::Invoke的方法:
       IDispatch *pDispatch;
       CLSID clsid
       CLSIDFromProgID(L"XLCOM.MyMSMQ",&clsid);
       HRESULT hr=CoCrateInstance(clsid,
                     NULL,CLSCTX_SERVER,IID_IDispatch,
    (                void**)&pDispatch);///////////如果使用方法Add(假设)
    LPOLESTR lpOleStr=L"Add";
    DISPID dispid;
    pDispatch->GetIDsOfNames(IID_NULL,&lpOleStr,
                        1,LOCALE_SYSTEM_DEFAULT,&dispid);
    ...............
    pDispatch->Invoke(dispid,IID_NULL,
               LOCALE_SYSTEM_DEFALUT,DISPATCH_METHOD,
                     &dispaarams,&varresult,0,NULL);   2、采用ID绑定技术用VC Class Wizard 创建新类,从TLB中创建新类,
    生成包裹类,
    就可以使用VB中的COM 了