天天看點

MFC序列槽通信開始:增添:

開始:

很好很詳細的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

以上,問題解決

————————————————

使用上述說的第三種方法成功擷取到了可用的端口号  []~( ̄▽ ̄)~*

繼續閱讀