请问谁懂delphi呀,现在有一个用delphi开发的Convert.dll,
Convert.dll说明
函数:
function WerToI(xInPutFileName,xOutPutFileName:PChar;MarcPro:TMarcProc):Integer;
xInPut1:需要转换的文件名称(d:\1.txt);
xOutPut2:转换后保存文件的名称(d:\2.ilo);
MarcPro:回调过程(procedure(Max,Position:Integer;Caption:pchar);stdcall;)
返回值:1:成功
        0:失败
请问在c#里应该怎么调用呢?

解决方案 »

  1.   

    帮你试了,如果回调是在Delphi里写的没有问题,如果用C#写的就不行了,不知道为什么,我也是一新手...
      

  2.   

    C#中你需要这样写:public Delegate void TMarcPro(int max,int position,string caption);public void MarcPro(int max,int pos,string cap)
    {
       messagebox.show(max.tostring()+"   "+pos.tostring()+"   "+cap);
    }[DllImport("Dll名称.dll",CharSet=CharSet.Ansi)]
    public static extern int WerToI(string xInPutFileName, string xOutPutFileName,TMarcPro MarcPro);
    就可以调用了,编码不同,所以需要转换为Ansi
      

  3.   

    lianshaohua(永远深爱一个叫“...”的好女孩儿!) ,你好
    我是要调用WerToI,请问怎么调用呢?不好意思,不太懂这方面的
      

  4.   

    [DllImport("Dll名称.dll",CharSet=CharSet.Ansi)]
    public static extern int WerToI(string xInPutFileName, string xOutPutFileName,TMarcPro MarcPro);
    写到一个类里,用类名.WerToI()就可以调用了,
      

  5.   

    汗....你在C#中肯定会定义一个这个委托(public Delegate void TMarcPro(int max,int position,string caption);)形式的方法,静态或非静态的都行,然后在调用传用方法时创建一个委托就行了: new TMarcPro(方法名)在我给你的代码中就是:WerToI(@"c:\1.txt",@"d:\2.ico",new TMarcPro(MarcPro));