2013/06/27

Managed Extensions for C++ Get Serial Port

Managed Extensions for C++ 的建立是為了擴充 C++ 語言,使您能使用 .NET Framework,並且以 Common Language Runtime 為目標而不需另學新的程式語言。

曾經開發過.Net的開發者會比較容易去理解一些修飾詞,.NET Framework 具有兩個主要元件:Common Language Runtime 和 .NET Framework 類別庫 (Class Library)


Common Language Runtime 負責執行期間程式碼的管理,提供核心服務,例如記憶體管理、執行緒管理和遠端處理,同時也強制使用嚴格的型別安全和其他程式碼格式的精確性,以確保安全性和強固性。類別庫則是綜合的、可重複使用的型別之物件導向集合,該型別可用於開發應用程式。



今天所實現的是透過System.dll去取得到Serial Port,工具是使用VS 2010

首先新增一個一般的C++專案,接著修改專案屬性



將組態改成所有組態,並點選到一般,將Common Language Runtime支援改成支援Common Language Runtime 支援(/clr)




#include <iostream>
#using <System.dll>

using namespace std;
using namespace System;
using namespace System::IO::Ports;

void main()
{
  for each (String^ name in SerialPort::GetPortNames())
  {
       Console::WriteLine("{0}", name);
  }

  system("pause");
}

結果



參考資料:
http://blogs.msdn.com/b/hsutter/archive/2003/11/23/53519.aspx
http://stackoverflow.com/questions/4684365/managed-c-ref-class
http://msdn.microsoft.com/zh-tw/library/xey702bw(v=vs.80).aspx
http://msdn.microsoft.com/zh-tw/library/b23b94s7(v=vs.80).aspx
http://msdn.microsoft.com/zh-tw/library/ms235289(v=vs.80).aspx
http://msdn.microsoft.com/zh-tw/library/ms384255(v=vs.71).aspx
http://en.wikipedia.org/wiki/Managed_Extensions_for_C%2B%2B
http://msdn.microsoft.com/zh-tw/library/8bs2ecf4.aspx
http://msdn.microsoft.com/zh-tw/library/system.io.ports.serialport.aspx?cs-save-lang=1&cs-lang=cpp#code-snippet-1
http://www.dotblogs.com.tw/billchung/archive/2012/01/04/64319.aspx