C#调用dll始终报"尝试读取或写入受保护的内存"
以下是我的源代码
[DllImport ("SmGwAPI.dll")]
private static extern int SMGPSendSingle(
int nNeedReply,
int nMsgLevel,
string sServiceID,
int nMsgFormat,
string sFeeType,
string sFeeCode,
string sFixedFee,
string sValidTime,
string sAtTime,
string sSrctermId,
string sChargeTermID,
string sDestTermID,
int nMsgLen,
string sMsgContent,
StringBuilder sMsgID,
ref int nErrorCode,
string sMsgType,
string sReserved);
public void smgpsendsingle(ref MT submit)
{
StringBuilder msgid=new StringBuilder(20);
byte[] bytes = Encoding.GetEncoding(this._encodetype).GetBytes(submit.MsgContent);
submit.MsgLen = bytes.Length;
if (bytes.Length > this._maxsmslength)
{
submit.MsgContent = Encoding.GetEncoding(this._encodetype).GetString(bytes, 0, this._maxsmslength);
submit.MsgLen = this._maxsmslength;
}
int times = 0;
int rt = -1;
lock(object1)
{
while (times < this._mtretry || this._mtretry == 0)
{
rt = SMGPSendSingle(submit.NeedReply,
submit.MsgLevel,
submit.ServiceID,
submit.MsgFormat,
submit.FeeType,
submit.FeeCode,
submit.FixedFee,
submit.ValidTime,
submit.AtTime,
submit.SrcTermID,
submit.ChargeTermID,
submit.DestTermID,
submit.MsgLen,
submit.MsgContent,
msgid,
ref submit.ErrorCode,
submit.MsgType,
submit.Reserved);
哪位大侠搭救一下