我需要在VB中使用API函数CoCreateInstance创建一个使用C++写的组件,请问该函数中的参数在VB中怎么申明?这样可行吗?都该引入哪些dll?

解决方案 »

  1.   

    msdn里有吗?有也是CoCreateInstance的函数申明,我是需要在VB中调用该函数,但不知道在VB中该函数的参数的类型怎样确定????
      

  2.   

    其实vb提供的createobject就可以满足你的要求了
    如果,你的dll是标准dll的话(不能引用使用,只能声明使用),想要大家帮助你,你应该提供函数的原形声明
      

  3.   

    CoCreateInstance的函数原型吗?
    STDAPI CoCreateInstance(
      REFCLSID rclsid,     //Class identifier (CLSID) of the object
      LPUNKNOWN pUnkOuter, //Pointer to controlling IUnknown
      DWORD dwClsContext,  //Context for running executable code
      REFIID riid,         //Reference to the identifier of the interface
      LPVOID * ppv         //Address of output variable that receives 
                           // the interface pointer requested in riid
    );我的组件的CLSID为 CLSID_JNIBridger, 想获取的接口为 IID_IJNIBridger
    接口申明为:interface IJNIBridger : public IUnknown {...}
      

  4.   

    是不是很难实现?
    我的组件没有实现IDispatch接口,能用CreateObject来创建吗?
      

  5.   

    //CoCreateInstance的函数原型吗?不是,你要调用的dll中的函数原形(假如你的dll不能引用的话)如果可以引用,用createobject就可以了
      

  6.   

    您是说直接对dll进行引用?拿着还算是在使用组件吗?组件最基本的一点就是不能对dll进行直接引用阿。在C++中我只要使用
    IJNIBridger *pBridger = NULL;
    CoCreateInstance(CLSID_JNIBridger, NULL, CLSCTX_INPROC_SERVER, IID_IJNIBridger, (void**)&pBridger);
    pBridger->Method1();
    pBridger->Method2();
    ....
    就可以对该组件进行调用了!
    我现在的目的就是想在VB中怎样实现上面的过程?VB可不可以实现????
      

  7.   

    工程 引用 浏览 找到你的dll文件,点击确定
      

  8.   

    需要让你的组件支持自动化(Automation),即实现IDispatch接口即可!,才能方便的在VB这样的语言中调用,因为在VB这样的语言中他通过组件的类型库来获取该组件的对象和方法以及相应的参数信息!