现在有一程序,主程序是用DELPHI写的,已经完成了。
还有一功能,我想用C#来写,写成DLL文件, 让DELPHI写的主程序调用。
以前一直没用过C#,有几个问题:
1、C#写的DLL,DELPHI可以调用吗?2、C#写DLL文件,可以把窗体写进去吗?3、大家觉得,这样做可行吗?

解决方案 »

  1.   

    首先的回答是不可以。
    C#的DLL中可以包含窗口,这没问题;
    但C#的DLL不是标准的DLL文件,它是一种中间语言,DELPHI通过正常的手段是没法调用的;
    如果你想C#的DLL可以被调用,那么你要使用c#的COM+编程方式,写一个COM+组件,这样在有.NET环境的情况下,DELPHI就可以通过标准的COM+调用方式来调用你这个DLL中的功能了
      

  2.   

    C#的DLL包含窗体了的
    其余学习中
      

  3.   

    c#的COM+编程
    请问怎么搞
    和正常有区别吗?
      

  4.   

    完全可以没问题,不过你还要装.net框架才能让程序正常运行。还不如直接用delphi的dll
      

  5.   

    我也想用DELPHI来写这个DLL
    但这个软件是我自己业余时间写的一个共享软件主要是我想借这个机会,顺便可以学学C#我也知道
    如果用DELPHI来写的话,最多也就是二三天时间,
    如果用C#来写的话,可能要一两个月之久,
    但我还是打算用C#来写
      

  6.   

    你用C#写的COM+组件,只要对方机器里装有.NET环境,他就可以在很多语言环境里调用,比如VB、Delphi、C++、ASP、PHP...
      

  7.   


    多谢了请问如何用C#写COM+组件呀
      

  8.   

    我也想用DELPHI来写这个DLL
    但这个软件是我自己业余时间写的一个共享软件主要是我想借这个机会,顺便可以学学C#我也知道
    如果用DELPHI来写的话,最多也就是二三天时间,
    如果用C#来写的话,可能要一两个月之久,
    但我还是打算用C#来写
    -----------
    倒呀,没有看过这样用的。一般来说都是WIN32的东西封装成DLL,再提供给.NET调用。
      

  9.   

    1、c#写成com是没问题的,如果楼主用的delphi2005想调用c#写的dll是绝对没问题的,不用费劲写成com了
    2、dll重视可以写进窗体的
    3、因为delphi2005用了framework,所以想调用c#的dll是非常正常的做法,没什么可性不可行的,放心的用吧!
      

  10.   

    想写com组件必须引用类库system.enterpriseservices.dll,记得不太清了,谢德雷必须继承于上面说得类库中的某个类(实在是记不住了,如果楼主感兴趣的话,可以直接联系我QQ125987235),在最后把编译好的dll启一个强名称就ok了
    不过,com组件要被淘汰了,用它来做也没什么意思啊!
      

  11.   

    1.可以,但是一定要做成com
    2.可以,窗体只是一些类而已
    3.就“com组件要被淘汰了” 想发表一下:确实有可能,尤其是大家都用.net了以后,还不知道以后的事情哪。还有建议搂住全面转到.net,delphi没有前途的。看boland都不行了。
      

  12.   

    1,写成 com 行,或用VC.net 作一个桥,做一个导出 API 函数
      DELPHI.net 可以直接调用
    2,可以
    3,如果子有简单的数据交互可以用web service DELPHI 支持的,不过有些数据类型好像不行
      

  13.   

    多谢各位,
    基本上搞明白了
    最后再问一下我想先写用c#按照普通的DLL写法写当写完了之后,生成的时候,再生成COM+组件,请问这样可以吗?
      

  14.   

    com组件就是这么形成的
    你还想怎么做?