日期:2014-05-18  浏览次数:21148 次

急!! C#调用delphi的dll问题!!
delphi中有一个加密校验的CRC.dll,想在c#中调用它,老是报试图加载格式不正确的程序
  [DllImport( "DES.dll ",   CallingConvention   =   CallingConvention.StdCall)]
                  public   static   extern     int   DecFile(string   s1,   string   s2,   string   s3);     其中s1,s2,s3分别为源文件路径全名,目的文件路径全名和密钥.

是不是参数s1的路径在delphi中是带 "/ "的而c#是带 "// "传入的?
各位有碰过这样的问题的吗?     请教!!  


------解决方案--------------------
delphi的dll如果用了string类型那么c#是不能调用的,用了string类型的dll只供delphi调用,除非delphi里面用的是pchar,那么在c#里面可以把类型转换了来调用。
------解决方案--------------------
给你个方法:自己写个DLL,然后引用用的DES.dll,调用里面的函数,自己写的这个DLL中可以用下面的形式:
Function EncFile(sSrcFileName, sDestFileName, sKeyFileName :pchar):Integer
begin
result:=加密函数();
end;