Agreed, its far easier in C#, however it may be too late to transpose an entire app. Here is some info on how to do it on windows ( without C#, its method is far simpler ). This is for C++, however any language that can use the windows API has access to the same functions, and possibly easier ways.http://www.codeguru.com/cpp/i-n/network/serialcommunications/article.php/c5425/Serial-Communication-in-Windows.htm
I can't remember off hand their names, however there are some open source serial implementations which wrap this functionality into a nicer interface.
Here is an article that popped up first.http://www.codeproject.com/Articles/992/Serial-library-for-C
I haven't looked into the next link, it seemed interesting from the google caption though.http://www.boost.org/doc/libs/1_40_0/doc/html/boost_asio/overview/serial_ports.html