MFC基本對話框_串口(COM)掃描函數總結

原文鏈接:https://blog.csdn.net/naibozhuan3744/article/details/78647658

本文主要總結一個串口(COM口)掃描函數,並將其封裝成一個函數。當需要用MFC做一個計算機的串口掃描按鈕時,可以直接調用下列函數,而不用再另費心思去寫。全文主要分爲三部分,第一部分是頭文件源代碼,第二部分是源文件源代碼,第三部分是COM口函數調用示例。

 

一、頭文件程序如下(可直接複製黏貼)CommScan.h

#pragma once

int CommScan(CComboBox* m_pComBox);

void closeHandle(HANDLE& handle);

二、源文件程序如下(可直接複製黏貼)CommScan.cpp

#include "stdafx.h"

#include "CommScan.h"



int CommScan(CComboBox* m_pComBox)

{

	HANDLE hComm;

	CString ComName;

	m_pComBox->ResetContent(); //清空組合框內所有內容

	for (int i = 1; i < 256; i++)

	{

		if (i<10) ComName.Format(_T("COM%d"), i);//注意:COM後面不能有分號,COM9以下。直接用"COM9" _T("COM8")

		if (i >= 10) ComName.Format(_T("\\\\.\\COM%d"), i); //注意:COM10以上要用"\\\\.\\COM10"才行

		hComm = (HANDLE)CreateFile(ComName, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);



		if (hComm != INVALID_HANDLE_VALUE)

		{

			CString string3;

			string3.Format(_T("COM%d"), i);

			m_pComBox->AddString(string3); //添加COM組合框內容

			closeHandle(hComm); //關閉句柄

		}

	}

	int ContentNo = m_pComBox->GetCount();//獲得當前選中內容的數目

	m_pComBox->SetCurSel(ContentNo - 1); //設置當前選中內容顯示

	return ContentNo;

}

void closeHandle(HANDLE& handle)

{

	CloseHandle(handle);

	handle = INVALID_HANDLE_VALUE;

}


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章