这行delphi的代码怎么改成c#的呢?
//Chang.DLL
function t_ADes3(strDes,strSrc,strKey:PChar):Integer;
stdcall;external DLLNAME1 name 'tCon_ADes3 ';
============================================================
那位能帮我改一下啊!!!
------解决方案--------------------using System.Runtime.InteropServices;
public class XX
{
[DllImport( "Change.dll ", EntryPoint= "tCon_ADes3 ", CallingConvention=CallingConvention.StdCall)]
public static extern int t_ADes3(string strDes, string strSrc, string strKey);
}
调用时直接 XX.t_ADes3(xx, yy, zz);
代码 DllImport 用于告诉编译器入口点在哪里。
DllImport声明时可以直接
[DllImport( "change.dll ")]
也可以添加几个属性:
[DllImport( "change.dll ", EntryPoint= "abcd ", CharSet=CharSet.Auto, CallingConvention=CallingConvention.StdCall)]
EntryPoint:指定要调用的 Dll入口点,默认入口点名称是托管方法的名称。
CharSet:控制名称重整和封送 String 参数的方式(默认是 UNICODE)
CallingConvention:指示入口点的函数调用约定(默认WINAPI)
SetLastError:指示被调用方法在从属性化方法返回之前是否调用 SetLastError Win32 API函数(C#中默认为 false).
------解决方案--------------------楼上基本可以
但第一个参数如果是要返回并填写的话
那么就的用StringBuilder类型
调用的时候先开辟空间
StringBuilder vStringBuilder = new StringBuilder(1024);