如果你是享用vc写dll供delphi调用的话,不要用C++方式,因为这种方式隐含参数this指针,
你的pDisp实际上是第二个参数,而非第一个.

解决方案 »

  1.   

    VC写的DLL有两种,一种是MFC的,只能给VC自己调用。
      

  2.   

    如果非VC程序调用了MFC的DLL,传参数要出错的
      

  3.   

    肯定搞错了,应该是
    void WINAPI CMyApp::MyGetDispatch(IDispatch* pDisp, IDispatch** rDisp)
    而且,要记住你可能要调用AddRef(如果你函数的实现不是现在这样的话)。
      

  4.   

    参考一下这个:
    MSJ July 1996, Under the Hood, by Matt Pietrek
      

  5.   

    我忽然想起了,在263战网我也碰到过一个hp.unreal,难道……