title: Windows CE and serial port problems (can't open port)
body: <p>I'm trying to write a custom application for a GPS device, and I need to read the GPS data.</p>
  
  <p>The problem I'm facing is that I cannot open the GPS port. I know which COM it is, and I know the baud rate, but I get an <code>IOException</code> whenever I get to the <code>Open()</code> method.</p>
  
  <pre><code>port = new SerialPort("COM6", 9600);
  port.ErrorReceived += new SerialErrorReceivedEventHandler(port_ErrorReceived);
  port.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);
  try
  {
      port.Open();
  }
  catch (IOException ex)
  {
      SetLabel(label1, ex.Message);
  }
  </code></pre>
  
  <p>Stack trace:</p>
  
  <pre><code>at System.IO.Ports.SerialStream.WinIOError(Int32 errorCode, String str)
  at System.IO.Ports.SerialStream..ctor(String portName, Int32 baudRate, Parity parity, Int32 dataBits, StopBits stopBits, Int32 readTimeout, Int32 writeTimeout, Handshake handshake, Boolean dtrEnable, Boolean rtsEnable, Boolean discardNull, Byte parityReplace)
  at System.IO.Ports.SerialPort.Open()
  at PortTest.Form1.button1_Click(Object sender, EventArgs e)
  at System.Windows.Forms.Control.OnClick(EventArgs e)
  at System.Windows.Forms.Button.OnClick(EventArgs e)
  at System.Windows.Forms.ButtonBase.WnProc(WM wm, Int32 wParam, Int32 lParam)
  at System.Windows.Forms.Control._InternalWnProc(WM wm, Int32 wParam, Int32 lParam)
  at Microsoft.AGL.Forms.EVL.EnterMainLoop(IntPtr hwnMain)
  at System.Windows.Forms.Application.Run(Form fm)
  at PortTest.Program.Main()
  </code></pre>
  
  <p>What makes matters quite infuriating is that a sample native C++ codes that I found DOES work, opens the port without problems, and I could even glance at some of the NMEA strings. But this was all done using sample C++ codes provided around the Web, and I don't feel proficient enough to base my entire application in this language. I'd like to stick to C#.</p>
  
  <p>Are there any other ways to open a port in C# using the <code>SerialPort</code> class in Windows CE? Or perhaps using other classes entirely?<br>
  If not, is there perhaps a C++ written DLL that allows the same (or similar) functionality available for Windows CE?</p>
  
  <p>EDIT (for more details):
  The exception I get is just that. IOException. The Visual Studio debugger tells me nothing more. I don't know if this is due to some botched Windows CE setting on the device. I DO remember a problem with exception strings on my Windows Mobile device, but that was solved by adding a reference to <code>System.SR</code>, which I already tried in this case. If there's some trick I'm missing with regards to Windows CE and exception messages, I'd love to know too. ;)</p>
  
  <p>I've also tried to use the code without events and by specifying more parameters in the constructor, and I'd always get the exception when trying to open the port.</p>
  
  <p>Finally, I've already tried adding a <strong>:</strong> to the port name, which also didn't help.</p>