C# WINFORM调用DELPHI的DLL
接口说明如下:
认证函数:
function Sed_Auth (SendData:String; var ErrMsg: String):Word;
功能:对客户端进行认证。只有认证通过了才能进行业务处理。建议在系统启动时进行认证。
参数:
SendData格式如下:
sSvrIP 前置服务器IP地址
sSvrPort 前置服务器端口号
sHospCode VarChar(5) 医疗机构ID
sPassWord VarChar(8) 医疗机构密码
sUserName VarChar(10) 操作员
返回值:1成功,0失败
我的调用代码如下:
[DllImport("sed_siif.dll", CharSet = CharSet.Ansi, PreserveSig = false, CallingConvention = CallingConvention.StdCall)]
public static extern int Sed_Auth(string SendData, ref StringBuilder ErrMsg);
private void Form1_Load(object sender, EventArgs e)
{
StringBuilder sb = new StringBuilder("172.16.33.3@23432@20000@20000@999");
StringBuilder msg = new StringBuilder(1024);
MessageBox.Show(Sed_Auth(sb.ToString(), ref msg).ToString());
MessageBox.Show(msg.ToString());
}
这个是我写的测试例子,
MessageBox.Show(Sed_Auth(sb.ToString(), ref msg).ToString());
这行代码返回值为“0”,可以报出来,但是如果字符串正确的话应该是“1”
另外:MessageBox.Show(msg.ToString());
这行代码中的msg没有任何值。