当前位置: 代码迷 >> .NET新技术 >> 发短信功能的程序总报“尝试读取或写入受保护的内存。这通常指示其他内存已损坏。”解决方案
  详细解决方案

发短信功能的程序总报“尝试读取或写入受保护的内存。这通常指示其他内存已损坏。”解决方案

热度:1290   发布时间:2016-04-25 01:57:55.0
发短信功能的程序总报“尝试读取或写入受保护的内存。这通常指示其他内存已损坏。”
尝试读取或写入受保护的内存。这通常指示其他内存已损坏。


  [STAThread]

  [DllImport("sms.dll", EntryPoint = "Sms_Connection")]
  public static extern uint Sms_Connection(uint Com_Port, uint Com_BaudRate, out string Mobile_Type);

  [DllImport("sms.dll", EntryPoint = "Sms_Disconnection")]
  public static extern uint Sms_Disconnection();

  [DllImport("sms.dll", EntryPoint = "Sms_Send")]
  public static extern uint Sms_Send(string Sms_TelNum, string Sms_Text);

  [DllImport("sms.dll", EntryPoint = "Sms_Receive")]
  public static extern uint Sms_Receive(string Sms_Type, out string Sms_Text);

  [DllImport("sms.dll", EntryPoint = "Sms_Delete")]
  public static extern uint Sms_Delete(string Sms_Index);

  [DllImport("sms.dll", EntryPoint = "Sms_AutoFlag")]
  public static extern uint Sms_AutoFlag();

  [DllImport("sms.dll", EntryPoint = "Sms_NewFlag")]
  public static extern uint Sms_NewFlag();
  //如果连接成功返回true 否则返回false
  public bool SmsConn()
  {
  try
  {
  string TypeStr = "";
  if (Sms_Connection(uint.Parse(AddResource.SMSPORT), 9600, out TypeStr) == 1) ///5为串口号,0为红外接口,1,2,3,...为串口
  {
  return true;
  }else {
  return false;
  }
  }catch (Exception) { //这儿报问题
  return false;
  }
  }



------解决方案--------------------
检查端口号是否开启或是被占用。

既然你跟踪程序了,你可以看到抛出的具体异常信息。
  相关解决方案