现在想要做到的是:VC已经做好了一个独立的程序(课件制作软件),但现在要求把该程序内使用到的课件对象引入到DELPHI的程序里使用,这些课件对象在VC里都有相应的类进行描述和实现。请问大家如何实现引入到DELPHI中使用呢?谢谢!!!

解决方案 »

  1.   

    用vc写个dll,在某个接口函数中返回类指针给Delphi用。
      

  2.   

    一般要把类封装在动态链接库里面http://www.6yy.net/article.asp?id=35、
    或许对你有帮助
      

  3.   

    谢谢楼上两位,但现在考虑的是如何实现VC类与DELPHI的共享或者VC的类能在DELPHI中实例化。
      

  4.   

    现在正在考虑的是,如何实现VC类与DELPHI的共享或者VC的类能在DELPHI中实例化?这样是能解决问题的最佳方案了。
      

  5.   

    用dll的话,内存本来就是共享的,处在一个空间之下,可以传递地址
      

  6.   

    vc的类只有接口或者类型库能在 Delphi 中使用;现成的类是无法使用的 ------------ 如果不进行特殊处理,Delphi 本身就不能实现自身的类导出,而必须采用接口或者与接口相似的处理才行。
      

  7.   

    这个需要再次封装,VC写个DLL,把类的公共成员函数全部导出为单个函数,多加个ID参数,再导出个GetObjId的函数:int GetObjId()
    {
       //这里进行类对象的实例化
       VcClass* vcobj = new VcClass;
       return (int)vcobj;
    }DELPHI先调用GetObjId获取到这个ID,以后调用类成员函数全部把这个ID作为参数:VcMemberFunc(id,param);函数在DLL里面的实现:
    int VcMemberFunc(int id,int param)
    {
       VcClass* vcobj = (VcClass*)id;
       return vcobj->VcMemberFunc(param);
    }这样就可以了,把对象实例化放在DLL内部.
     
      

  8.   

    当然还要导出个释放对象的函数:
    void DelVCObj(int id)
    {
       VcClass* vcobj = (VcClass*)id;
       delete vcobj;
    }
    释放对象时调用.
      

  9.   

    最好的方法是写成COM,不过这样的话,DELPHI写COM好像也很方便。不过VC写COM有其先天优势,如果不用COM,只有类导出的话是受到限制的。建议使用COM,可以全面兼容各种主流语言和WINDOWS平台,对以后的扩展很有帮助。