我是靠谱客的博主 重要水池,这篇文章主要介绍串口编程---遍历串口号,现在分享给大家,希望可以做个参考。

1、直接遍历:

int CZzcSerial::TraveralCom(vector<string>& vName, vector<string>& vzName)
{
	int nNum = 0;
	vName.clear();

	for (int i = 0;i < 256;++i)
	{
		char szComName[MAX_PATH] = {0};
		sprintf_s(szComName, "\\.\COM%d", i);

		HANDLE hPort = CreateFile(szComName,
			GENERIC_READ | GENERIC_WRITE ,
			0,
			0,
			OPEN_EXISTING,
			0,
			0);

		if (INVALID_HANDLE_VALUE == hPort)
		{
			if (ERROR_ACCESS_DENIED == GetLastError())
			{
				//当前串口被占用
				vzName.push_back(string(szComName));
			}
		} 
		else
		{
			++nNum;
			vName.push_back(string(szComName));
			CloseHandle(hPort);
			hPort = INVALID_HANDLE_VALUE;
		}
	}

	return nNum;
}

2、通过读取注册表:

void CZzcSerial::TraveralCom(vector<string>& vName)
{
	HKEY hKey;
	char szportName[MAX_PATH], szcommName[MAX_PATH];

	if (ERROR_SUCCESS == ::RegOpenKeyEx(HK

最后

以上就是重要水池最近收集整理的关于串口编程---遍历串口号的全部内容,更多相关串口编程---遍历串口号内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(147)

评论列表共有 0 条评论

立即
投稿
返回
顶部