大家好,我用C#编写了一个DLL,大致如下:
    MySwap.cs文件中.using System;namespace MyMethods {     public class SwapClass      {          public static bool Swap(ref long i,ref long j)           {   i = i+j;  j = i-j;  i = i-j;  return true;           }     }} 请问,在Delphi中如何调用Swap这个方法,谢谢~~

解决方案 »

  1.   

    delphi如何调用C#的dll?在你的环境变量Path中加入 
    C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin; 
    C:\WINNT\Microsoft.NET\Framework\v1.1.4322随便建立一个ClassLibrary编译成DLL文件 
    切换到MS-DOS命令行下面,运行: 
    C:\>regasm out ClassLibrary1.DLL /regfile:ClassLibrary1.reg上面的命令行是注册我们的.NET组件,并且产生了一个备用的注册表文件。对应Windows的注册COM文件命令:regsvr32 c:\test.dll   . 
    在.NET下面,注册.NET组件就需要上面的regasm命令了然后在MS-DOS命令行下面,运行: 
    C:\>tlbExp ClassLibrary1.dll /out:ClassLibrary1.tlb上面的命令行表示将会产生一个.NET组件的类型库 
    有了TLB文件也就和正常的COM组件一样了,运行Delphi导入类型库文件TLB...... 
    和正常的COM调用一样
      

  2.   

    跟调用一般的dll一样吧
    我用VC写的库 也按一般的调用那样掉的
    function Mydll(iN:Integer):integer;stdcall;external 'DllName.dll';
    不过要注意参数的类型
      

  3.   

    TO :
       hongqi162 
       我在注册Library时提示:
       RegAsm : error RA0000 : Unable to locate input assembly 'out' or one of its dependencies.
       
    注册过程:把生成的Library拷贝到C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>中
       注册命令 :C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>regasm out ModBusLibrary.dll/regfi
    le:ModBusLibrary.reg    
      

  4.   

    先注册该dll吧,再用普通方法调用就是了
      

  5.   

    C#是.net,delphi是原生,最后不要混着调用
      

  6.   

    。NET的是托管,尽量不用他的DLL为好,容易不协调