delphi动态库有形如var xx :PChar的出参
给的调用示例为:
[DllImport("HisInterface.dll")]
public static extern int ini_sys(String hpnum,
[MarshalAs(UnmanagedType.LPStr)]StringBuilder hpCode,
[MarshalAs(UnmanagedType.LPStr)]StringBuilder hpAreacode,
[MarshalAs(UnmanagedType.LPStr)]StringBuilder hpLevel,
[MarshalAs(UnmanagedType.LPStr)]StringBuilder Hpclass,
[MarshalAs(UnmanagedType.LPStr)]StringBuilder hpName,
[MarshalAs(UnmanagedType.LPStr)]StringBuilder moneyLevel,
[MarshalAs(UnmanagedType.LPStr)]StringBuilder Err_text);
个人写的调用程序:
StringBuilder sHpCode = new StringBuilder(); //医院代码
StringBuilder sHpAreacode = new StringBuilder(); //地区代码
StringBuilder sHpLevel = new StringBuilder(); //医院等级
StringBuilder sHpclass = new StringBuilder(); //机构级别
StringBuilder sHpName = new StringBuilder(); //医院名称
StringBuilder sMoneyLevel = new StringBuilder(); //医院收费类别
StringBuilder sErr_text = new StringBuilder(); //失败原因
int iReturn = -10;
string sInHpCode = "3253425";
iReturn = ini_sys(sInHpCode, sHpCode, sHpAreacode, sHpLevel, sHpclass,
sHpName, sMoneyLevel, sErr_text);
第一个参数为入参,其它为引用型出参,但无论用Ansi,unicode等都试过,数据类型也用
StringBuilder或ref string或char都试过,最终都报错为,尝试读取或写入内存错误,请指教,急急急
给的调用示例为:
[DllImport("HisInterface.dll")]
public static extern int ini_sys(String hpnum,
[MarshalAs(UnmanagedType.LPStr)]StringBuilder hpCode,
[MarshalAs(UnmanagedType.LPStr)]StringBuilder hpAreacode,
[MarshalAs(UnmanagedType.LPStr)]StringBuilder hpLevel,
[MarshalAs(UnmanagedType.LPStr)]StringBuilder Hpclass,
[MarshalAs(UnmanagedType.LPStr)]StringBuilder hpName,
[MarshalAs(UnmanagedType.LPStr)]StringBuilder moneyLevel,
[MarshalAs(UnmanagedType.LPStr)]StringBuilder Err_text);
个人写的调用程序:
StringBuilder sHpCode = new StringBuilder(); //医院代码
StringBuilder sHpAreacode = new StringBuilder(); //地区代码
StringBuilder sHpLevel = new StringBuilder(); //医院等级
StringBuilder sHpclass = new StringBuilder(); //机构级别
StringBuilder sHpName = new StringBuilder(); //医院名称
StringBuilder sMoneyLevel = new StringBuilder(); //医院收费类别
StringBuilder sErr_text = new StringBuilder(); //失败原因
int iReturn = -10;
string sInHpCode = "3253425";
iReturn = ini_sys(sInHpCode, sHpCode, sHpAreacode, sHpLevel, sHpclass,
sHpName, sMoneyLevel, sErr_text);
第一个参数为入参,其它为引用型出参,但无论用Ansi,unicode等都试过,数据类型也用
StringBuilder或ref string或char都试过,最终都报错为,尝试读取或写入内存错误,请指教,急急急
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货