如果delphi要调用c# dll,赶紧看看这个

 

 明生KISS ps:之所以有要保留这方章的起因是,在写一个项目,而项目当中是get一个https站点,发现原来这个站点真让人郁闷。检查来检查去发现原来是delphi自身的ssl问题.弄来弄去,最后得先用其他的语言去实现某个功能。然后再让delphi去调用此功能就行了。经过一翻的周折。才有了以下的内容。。

 

编写C#dll的方法都一样,首先在vs2005中创建一个“类库”项目TestDll,

 C#代码

 

using System.Runtime.InteropServices; 

namespace TestDll

{

     public   interface  I TestClass

     {

       void YourProcedure(stirng param1);

    } 

   [ClassInterface(ClassInterfaceType.None)]

    public   class TestClass:I TestClass

     {

       public void YourProcedure (stirng param1); 

        {    //自己的代码    } 

    }   

}

 

…………………

 

 

网络中关于Delphi中Interface的作用

明生KISS ps:很多时都会使用到接口模式所以做个备注  

个人认为引入Interface的主要作用是有利于软件的升级维护,避免模块的耦合,而不是某些人认为的为了实现多重继承。

 

以下是一个网上的小例子:

 

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type
   // 定义接口 如果接口独立成一个文件,则在应用程序中和实现程序中都要引用该接口文件;
    ICar = interface (IInterface)
        [‘{ED52E264-6683-11D7-B847-001060806215}’ ]
        procedure drive;
    end ;
// 接口实现类 1 ,一定要加入 TinterfacedObject 才能使用;
    TCar = class(TInterfacedObject,ICar)
    public
        procedure drive;
    end ;