MFC实现的串口测试程序
来源:互联网 发布:由诲女知之乎翻译 编辑:程序博客网 时间:2024/06/08 06:23
本人最近做了个小的测试软件,特别写个博客记录下过程中遇到的一些问题及解决办法,本人是个小白,大神路过不用停留,谢谢。
首先,介绍下我做的测试软件的功能。1)关于串口的功能,扫描当前PC已连接的串口,加入到串口列表里,然后通过按键打开串口,并实现串口的收发;2)扫描无线AP的功能,通过PC的无线网卡扫描环境中的AP,并且显示出来。
- 串口部分
串口部分网上的例子很多,就不具体介绍了,我是采用的控件的方法,VS2010需要安装一个补丁。这里有个小插曲,我按照网上的方法操作,结果串口没响应,折腾了好久,似乎也没人遇到过这个问题,最后我发现是建立控件响应消息的函数时,通过在控件上右键添加消息事件才行,我之前是在类向导添加的,不知道为什么不行。
另外,扫描PC已连接串口的方法网上也有介绍,大都差不多,我随便粘贴了个,但是发现如果串口号大于等于10就不行,后面又上午搜了下,是因为一个参数设置问题。RegQueryValueEx()函数最后一个参数,记不清之前是设置的多少,改成64后就没问题了。
贴上代码:
long lReg; HKEY hKey; DWORD MaxValueLength; DWORD dwValueNumber; CString error_log; lReg=RegOpenKeyEx(HKEY_LOCAL_MACHINE, TEXT("HARDWARE\\DEVICEMAP\\SERIALCOMM"), 0, KEY_QUERY_VALUE, &hKey); if(lReg!=ERROR_SUCCESS) //成功时返回ERROR_SUCCESS, { MessageBox(_T("Open Registry Error!")); } lReg=RegQueryInfoKey(hKey, NULL, NULL, NULL, NULL,NULL, NULL, &dwValueNumber, &MaxValueLength, NULL, NULL, NULL); if(lReg!=ERROR_SUCCESS) //没有成功 { MessageBox(_T("Getting Info Error!")); } TCHAR *pValueName, *pCOMNumber; DWORD cchValueName,dwValueSize=10; //clear m_Comport.ResetContent(); for(int i=0; i < dwValueNumber; i++) { cchValueName = MaxValueLength+1; dwValueSize = 64; pValueName = (TCHAR*)VirtualAlloc(NULL,cchValueName,MEM_COMMIT,PAGE_READWRITE); lReg = RegEnumValue(hKey, i, pValueName, &cchValueName, NULL, NULL, NULL, NULL); if((lReg!=ERROR_SUCCESS)&&(lReg!=ERROR_NO_MORE_ITEMS)) { MessageBox(_T("Enum Registry Error or No More Items!")); } pCOMNumber=(TCHAR*)VirtualAlloc(NULL,64,MEM_COMMIT,PAGE_READWRITE); lReg=RegQueryValueEx(hKey, pValueName, NULL, NULL, (LPBYTE)pCOMNumber, &dwValueSize); if(lReg!=ERROR_SUCCESS) { port!")); } CString str(pCOMNumber); m_Comport.AddString(str); //把获取的值加入到ComBox控件中 VirtualFree(pValueName,0,MEM_RELEASE); VirtualFree(pCOMNumber,0,MEM_RELEASE); } }里写代码片`分分 pCOMNumber,0,MEM_RELEASE); } }
2.扫描AP部分
扫描AP的代码也可以找到,只是有点瑕疵,会有重复的无线被扫到,这个没管他,也贴上代码:
int id=0; //char *lang = setlocale(LC_CTYPE,NULL);//获取当前的本地语言 //setlocale(LC_ALL, "chs");//设置本地语言 HANDLE ClientHandle;DWORD nv,i,c;PWLAN_INTERFACE_INFO_LIST ilist;PWLAN_AVAILABLE_NETWORK_LIST nlist;static char ssid[36]; char data_2_write[64] = {0}; //UpdateData(); if(WlanOpenHandle(1,0,&nv,&ClientHandle)==0) { if(WlanEnumInterfaces(ClientHandle,0,&ilist)==0) { for (i = 0; i< ilist->dwNumberOfItems; i++) { wprintf(L"\r\n%s%s\r\n",L"网卡:",ilist->InterfaceInfo[i].strInterfaceDescription); if(WlanGetAvailableNetworkList(ClientHandle,&ilist->InterfaceInfo[i].InterfaceGuid,0,0,&nlist)==0){ if(0 == WlanScan(ClientHandle,&ilist->InterfaceInfo[i].InterfaceGuid,NULL,NULL,NULL)) { for(c=0;c<nlist->dwNumberOfItems;c++) { memcpy(ssid,nlist->Network[c].dot11Ssid.ucSSID,nlist->Network[c].dot11Ssid.uSSIDLength); ssid[nlist->Network[c].dot11Ssid.uSSIDLength]=0; sprintf(data_2_write,"%3d. SSID: %-25s 信号强度: %5d\r\n",id++,ssid,nlist->Network[c].wlanSignalQuality); m_log += data_2_write; } WlanFreeMemory(nlist); } } } WlanFreeMemory(ilist); } WlanCloseHandle(ClientHandle,0); } //setlocale(LC_ALL, lang);//恢复语言
3.其他
由于想做个自己的特有的图标,我下了个制作图标的软件Axialis IconWorkshop,它会选择安装VS的插件,我开始想挺好的,就装了。结果,等我做好自己的图标后,编译,傻了,死活编不过,提示下面的错误信息:
1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h : warning C4819: The file contains a character that cannot be represented in the current code page (936). Save the file in Unicode format to prevent data loss1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h : error C4335: Mac file format detected: please convert the source file to either DOS or UNIX format1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2470: '箖p癗0' : looks like a function definition, but there is no parameter list; skipping apparent body1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x6'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x8'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x6'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x1'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x5'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x5'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x7'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x1'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x1'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x4'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x6'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x8'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x6'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x1'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x5'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x5'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x7'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x1'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x2'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x6'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x6'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x1'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x1'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x5'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x5'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x7f'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x6'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x3'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x13'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x2'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x13'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x11'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x6'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x3'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(1): error C2018: unknown character '0x13'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(2): error C2018: unknown character '0x10'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(2): error C2018: unknown character '0xe'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(2): error C2018: unknown character '0x6'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(2): error C2018: unknown character '0x3'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(2): error C2018: unknown character '0x13'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(2): error C2018: unknown character '0x7'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(2): error C2018: unknown character '0x1e'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(2): error C2018: unknown character '0x1c'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(2): error C2018: unknown character '0x6'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(2): error C2018: unknown character '0x3'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(2): error C2018: unknown character '0x13'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(2): error C2018: unknown character '0x15'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(2): error C2001: newline in constant1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(2): error C2015: too many characters in constant1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(3): error C2018: unknown character '0x13'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(3): error C2018: unknown character '0x15'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(3): error C2018: unknown character '0x1f'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(3): error C2018: unknown character '0x6'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(3): error C2018: unknown character '0x3'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(3): error C2018: unknown character '0x13'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(3): error C2018: unknown character '0x18'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(4): error C2018: unknown character '0x2'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(4): error C2018: unknown character '0x1'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(4): error C2018: unknown character '0xf'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(4): error C2018: unknown character '0x1f'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(4): error C2018: unknown character '0x1c'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(4): error C2018: unknown character '0x1d'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(4): error C2018: unknown character '0xe'1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(4): error C2014: preprocessor command must start as first nonwhite space1>c:\program files\microsoft sdks\windows\v7.0a\include\ifdef.h(4): fatal error C1004: unexpected end-of-file found
到网上找解决办法,都试了,没用,最后不得不用另外一台没装Axialis IconWorkshop软件的电脑编过了,原因好像是这个软件有关于MAC的一些绑定吧,没具体看,后面有时间再看看。
好吧,大致是这些,第一次写自己的博客,记录自己的成长吧。
PS:CSDN新的编辑界面不是很完美,还需要提升哦。
0 0
- MFC实现的串口测试程序
- MFC串口通信串口指示灯的实现
- MFC实现自己的串口
- mfc-串口功能的实现
- 串口的简单测试程序
- 简单的串口测试程序
- 温度测试-利用MFC的串口通信
- VS2010编写的MFC串口程序
- MFC 串口通讯程序
- 串口调试程序的实现
- mfc下的串口编程实现
- MFC实现的串口通信助手
- MFC实现的串口通信助手
- MFC实现的串口通信助手
- MFC下自动识别串口的实现
- 用来测试串口误码率的小程序
- DM6446的Linux串口测试程序
- 基于android下测试串口的程序
- 【模式识别】OpenCV中使用神经网络 CvANN_MLP
- python中的getopt模块
- CXF整合Spring之JaxWsProxyFactoryBean调用
- Android开发之远距离PC控制
- opencv简单滤波
- MFC实现的串口测试程序
- iOS 判断当前屏幕旋转状态
- 学习JAVA开发心得第一篇
- BZOJ 2440 & 2301 莫比乌斯应用
- 关于iOS多线程
- POJ - 2348 Euclid's Game
- dbms_sql包的用法
- 为何stop()和suspend()方法不推荐使用
- hdoj 1789 Doing Homework again