做个记录,delphi中传参出参用widestring类型出参的时候,C#调用dll的方式。
DELPHI 代码示例:
function ReadCardInfo(sInPar:WideString; var sOutPar:WideString):Integer;stdcall;
begin
end;
C#代码示例:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Runtime.InteropServices;
namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public class Comm
{
[DllImport(“hy.ylz.dkcz.dll”, EntryPoint = “ReadCardInfo”, CharSet = CharSet.Unicode,
ExactSpelling = true)]
public static extern int ReadCardInfo(string sInPar, [MarshalAs(UnmanagedType.BStr)] out string sOutPar);
}
private void button1_Click(object sender, EventArgs e)
{
string s;
string str;
s=“1”;
int I=0;
I = Comm.ReadCardInfo(s,out str);
MessageBox.Show(str);
MessageBox.Show(Convert.ToString(I));
}
}
}