This software is designed for RS232/RS422/RS485 serial communications in C/C++. It allows controlling multiple ports together and offers features such as line status/control, modem control, ANSI emulation, & virtual ports like USB to Serial or Bluetooth Serial. It also supports hardware/software flow control.

WSC4C is fully thread safe and can handle a variety of modem controls, serial line statuses and controls, and ANSI emulations. This component library uses the standard Windows API to communicate with devices attached to an RS232 port and even supports virtual serial ports such as USB to serial and Bluetooth serial.
The library is also capable of state-driven Xmodem and Ymodem on multiple ports simultaneously and can send Windows messages on the completion of events like incoming characters. With over 52 functions plus modem control, it can support any baud rate and can specify the parity, word size, and number of stop bits.
Best of all, WSC4C doesn't depend on any support libraries and makes calls to Windows API functions only. The component library comes with multiple C/C++ example programs and supports most popular compilers like Microsoft, Borland, Watcom, LCC, GCC, Digital Mars, and Embarcadero. It also includes 32-bit and 64-bit DLL files and OBJ files for static linking and works with 32-bit and 64-bit Windows.
If you're interested in trying out WSC4C, a fully functional evaluation version is available for download. Additionally, the C source code is available for purchase and comes with a royalty-free distribution with your compiled application. Plus, you'll have free technical support and updates for one year.
Version 7.0: Fixed SioGets() - would never timeouts when overlapped I/O was enabled. Added SioOpen and SioClose. Added SioGetsQ - reads port until no incoming data for specified "quiet" time. Added example programs Scale.c and vc_Scale.cpp that read from a (serial) scale.
Version 6.0.1: Added additional error codes. Added SioErrorText() that returns text associated with specified error codes. Added SioPortInfo() that returns baud in BPS and the theoretical port CPS. Added SioGetsC() that receives an entire line through the stop (EOL) character. Added ReadGPS example program.
Version 6.0.0: Added additional error codes. Added SioErrorText() that returns text associated with specified error codes. Added SioPortInfo() that returns baud in BPS and the theoretical port CPS. Added SioGetsC() that receives an entire line through the stop (EOL) character. Added ReadGPS example program.
Version 5.4.1: Added SioCRC16 and SioCRC32 functions to compute 16-bit CCITT CRC or 32-bit CCITT CRC; Added SioCountWait function that waits for a specified number of incoming bytes before returning; Added Visual Studio 2013 and 2015 support. Added makefiles for GCC, LCC, and Digital Mars C compilers.
Version 5.41: Added SioCRC16 and SioCRC32 functions to compute 16-bit CCITT CRC or 32-bit CCITT CRC; Added SioCountWait function that waits for a specified number of incoming bytes before returning; Added Visual Studio 2013 and 2015 support. Added makefiles for GCC, LCC, and Digital Mars C compilers.
Version 5.4: Added SioLRC function that computes the "longitudinal redundancy check"; added additional error checks to SioQuiet, and SioWaitFor; SioSetInteger no longer requires an open port for global (all ports) parameters; Modified SioReset to make it more tolerant opening slow virtual ports.
Version 5.3: Added SioLRC function that computes the "longitudinal redundancy check"; added additional error checks to SioQuiet, and SioWaitFor; SioSetInteger no longer requires an open port for global (all ports) parameters; Modified SioReset to make it more tolerant opening slow virtual ports.
Version 5.0: Added support for 64-bits (WSC64.DLL) Windows; Added SioHexView() function; Added several Visual Studio examples.
Version 4.3: N/A
Version 4.2: N/A