#include <Windows.h>
#include <iostream>
#include <vector>
#include <string>
std::vector<std::string> serialCOM::list_serial_ports()
{
std::vector<std::string> ports;
// Enumerate all available COM ports
for (int i = 1; i <= 256; i++) {
std::string port = "COM" + std::to_string(i);
HANDLE hComm = CreateFile(port.c_str(), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
}
return ports;
}
预计此行没有错误 // CreateFile(port.c_str() E0167 “const char *”类型的参数与“LPCWSTR”类型的参数不兼容
CreateFileW
,它需要一个 const wchar_t*
(这就是 LPCWSTR
是 typedef
的原因)。 port.c_str()
返回一个 const char*
并且这些指针不兼容。
CreateFileA
代替(需要 const char*
/ LPCSTR
)或者使 port
成为 std::wstring
并继续使用 CreateFileW
:
std::wstring port = L"COM" + std::to_wstring(i);
HANDLE hComm = CreateFileW(port.c_str(), ...