開始:
很好很詳細的MFC序列槽通信程式編寫指導:
http://wenku.baidu.com/link?url=_pDLkGWT-2E4oRQph2rVps_pu-zCbJ6_vB6UiNJv0EfiquJ1YlzFll0uG0hk0b-1NHkokKrE7ni57TFaesN1M4hTlY-BYp3F4Bikl2kjJ6y
————————————————
增添:
想要增添自動枚舉可用端口的功能,看到的網頁:http://blog.chinaunix.net/uid-20672257-id-2973926.html
想要使用其中的第三種用别人封裝好的來用,其下載下傳位址:http://www.codeguru.com/Cpp/W-P/system/hardwareinformation/article.php/c5721/
按照文章所講,我隻需要添加"EnumSerial.cpp",'EnumSerial.h'進入我的項目,并且連接配接到setupapi.lib即可
發現問題:
1.錯誤提示:
錯誤 3 error C2664: “void ATL::CStringT<wchar_t,StrTraitMFC_DLL<wchar_t,ATL::ChTraitsCRT<wchar_t>>>::Format(UINT,...)”: 無法将參數 1 從“const char [50]”轉換為“const wchar_t *”c:\users\administrator\desktop\mfcapplication1\mfcapplication1\enumserial.cpp2201MFCApplication1
1.解決方法:
在網上了解到是UNICODE轉換問題,因為VS2013中主要是UNICODE編碼,需要把字元串用_T()轉換,例:_T("abcdefg"),即可在UNICODE或者ASCII編碼都能使用。
2.錯誤提示:
error C4996: 'GetVersionExW': 被聲明為已否決
2.解決方法:
将SDL checks關閉 Project Properties > Configuration Properties > C/C++ > General > SDL checks關掉
3.添加setupapi.lib:
3.解決方法:
程式裡要添加#include <setupapi.h>
在項目屬性-配置屬性-連接配接器-輸入-附加依賴項中添加setupapi.lib,然後在EnumSerial.cpp中添加包含"setupapi.h"
4.錯誤提示:無法将 char* 轉換為 LPWSTR
4.解決方法:将該變量設定為TCHAR類型
5.錯誤提示:無法解析的外部符号········
5.解決方法:可能未添加setupapi.lib
以上,問題解決
————————————————
使用上述說的第三種方法成功擷取到了可用的端口号 []~( ̄▽ ̄)~*