请过来人告诉我怎么能让组件服务认识我的组件,谢谢!

解决方案 »

  1.   

    如果使用atl或是mfc,类型库自动包含在生成的dll中,所以没有问题
      

  2.   

    怎么能让组件服务认识我的组件呢?谢谢!我尝试在idl里面加了Library关键字,生成了一个tlb文件,还是老样子,能给我一个例子吗?我想知道我到底差了些什么?
      

  3.   

    //MathCOM.idl文件
    // MathCOM.idl : IDL source for MathCOM.dll
    //
    // This file will be processed by the MIDL tool to
    // produce the type library (MathCOM.tlb) and marshalling code.
    import "oaidl.idl";
    import "ocidl.idl";
    [
    uuid(FAEAE6B7-67BE-42a4-A318-3256781E945A),
    helpstring("ISimpleMath Interface"),
    object,
    pointer_default(unique)
    ]
    interface ISimpleMath : IUnknown
    {
    HRESULT Add([in]int nOp1,[in]int nOp2,[out,retval]int * pret);
    HRESULT Subtract([in]int nOp1,[in]int nOp2,[out,retval]int * pret);
    HRESULT Multiply([in]int nOp1,[in]int nOp2,[out,retval] int * pret);
    HRESULT Divide([in]int nOp1,[in]int nOp2,[out,retval]int * pret);
    }; [
    uuid(01147C39-9DA0-4f7f-B525-D129745AAD1E),
    helpstring("IAdvancedMath Interface"),
    object,
    pointer_default(unique)
    ]
    interface IAdvancedMath : IUnknown
    {
    HRESULT Factorial([in]int nOp1,[out,retval]int * pret);
    HRESULT Fabonacci([in]int nOp1,[out,retval]int * pret);
    };
    [
    uuid(CA3B37EA-E44A-49b8-9729-6E9222CAE844),
    version(1.0),
    helpstring("MATHCOM 1.0 Type Library")
    ]
    library MATHCOMLib
    {
    importlib("stdole32.tlb");
    importlib("stdole2.tlb"); [
    uuid(3BCFE27E-C88D-453C-8C94-F5F7B97E7841),
    helpstring("MATHCOM Class")
    ]
    coclass MATHCOM
    {
    [default] interface ISimpleMath;
    interface IAdvancedMath;
    };
    };
      

  4.   

    给你个网址你看看吧!哈哈!写的特别经典!这里面你一定能找到你的问题所在!
    http://www.vckbase.com/vckbase/columnist/venture/
      

  5.   

    没明白你的意思,你给的地址似乎是一个COM教程,我现在就想知道那一点点问题所在,你能不能把文章里面涉及到我的问题的范围指出来?我粗略看了看,没发现。
      

  6.   

    我找到问题了,我把GUID写错了。ft啊,还是谢谢两位的帮忙,让我知道对照着tlb去看发现了原因