В добавление к предыдущему посту, есть и самый удобный способ построения списка COM-портов в Windows - с использованием готовой библиотеки qextserialport.
Всё ну очень просто.
#include
QStringList getComPortList()
{
QStringList list;
QList ports = QextSerialEnumerator::getPorts();
foreach(QextPortInfo port, ports)
{
list.append(port.portName);
}
return list;
}