Per usare le porte sotto Windows basta usarle come file, mi spiego meglio.

Per aprire:

HANDLE hComm;
hComm = CreateFile( gszPort, // "COM1" o "LPT1" ecc...
GENERIC_READ | GENERIC_WRITE,
0,
0,
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,
0);
if (hComm == INVALID_HANDLE_VALUE)

Poi usi il ReadFile e il WriteFile per leggere e scrivere sulla porta.
Ci sono tante altre funzioni, ma queste sono le minime.

Ciao e fammi sapere.
Paolo