As mentioned above, the suggested API is inherent to Windows, so that you don´t need install any package. It is a solution much more suitable to work, due it is not dependent of external DLLs which can stay no more compatible with further OS versions.
No idea what should be the specific reason. Are you sure to open an existing COM port that is displayed in the device manager under serial ports?
Which handle value do you receive when calling CreateFile()? You also need to perform SetCommState and possible set CommTimeouts.
Code C - [expand]
1
2
3
4
5
6
7
8
hPort = CreateFile (lpszPortName,// Pointer to the name of the port
GENERIC_READ | GENERIC_WRITE,// Access (read-write) mode0,// Share mode
NULL,// Pointer to the security attribute
OPEN_EXISTING,// How to open the serial port0,// Port attributes
NULL);// Handle to port with attribute to copy
P.S.: What do you mean with country area related problems? Is it that the filename is expected in a 16-Bit charset?
You said it. Sorry, I didn't read your post thoroughly.
So returning to your question, like andre_teprom I was always using native Windows API for accessing COM ports.
I presume, documentation of the basic Windows communication function should be available from other resources than msdn, it's also in the Borland help.