我正在尝试使用 win32 API 与 com 端口通信 我找到了这个 http://www.robbayer.com/files/serial-win.pdf
hSerial = CreateFile("COM1",
GENERIC_READ | GENERIC_WRITE,
0,
0,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
我使用 VS2008,它提示 错误 C2664:“CreateFileW”:无法将参数 1 从“const char [5]”转换为“LPCWSTR”
好吧,我猜它不喜欢“COM1”是char*类型,
我尝试将其转换为 LPCWSTR("COM1"),然后编译没有问题。
但是,它返回“ERROR opening serial port -1”,所以没有成功找到com口。我猜直接类型转换不是正确的方法?
请告诉我应该怎么做才能完成这项工作。
msdn 没那么有用 http://msdn.microsoft.com/en-us/library/ms810467.aspx
我不知道那里的“gszPort”是什么意思
最佳答案
尝试 _T("COM1")
而不是 LPCWSTR("COM1")
。它叫做Generic-Text Mapping .我实际上不知道这是否是问题所在,但使用 _T
是解决问题的正确方法。
此外,当 Windows API 调用返回错误条件(如 -1)时,您可以使用 Last-Error Code (using GetLastError
and FormatMessage
)以获得更详细的错误描述。
关于windows - 如何使用 Win32 API 与 com 端口 (RS232) 通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5345077/