如何从C ++中的字符串列表中创建一个类数组,初学者提问!

时间:2010-12-11 16:11:02

标签: arrays c++-cli serial-port append

我希望系统中的每个端口都有一个SerialPort-Objects数组。 我的想法就是这样做:

    public ref class CommunicatorClass
{
private:
    static array<SerialPort^>^ _serialPortList;

public: 
    static void Main(){
//          _serialPortList->Initialize;
        for each (String^ s in SerialPort::GetPortNames())
        {
            Console::WriteLine("   {0}", s);
            AddListItem(s);

        }
    }

     static void AddListItem(String^ s)
    {
        // Get the length
        _serialPortList->Length = _serialPortList->GetLength + 1;

        _serialPortList[_serialPortList->GetLength] = gcnew SerialPort(s, 9600);
    }
};

但我对C ++ / Windows-Programming完全不熟悉。所以,是的,当然,有很多错误。任何人都可以纠正它(如果这个想法本身不完整废话)并告诉我一些关于错误的话?

会很高兴,提前谢谢你。

1 个答案:

答案 0 :(得分:0)

您想要以相同的波特率实际打开系统上的每个串口吗?

您无法更改数组的长度,您必须创建一个全新的数据并复制所有数据,并且每次需要添加其他项目时都这样做效率很低。我建议使用System::Collections::Generic::List代替,它会为您完成所有动态调整大小。

C ++ / CLI可以直接调用本机Windows串口函数,我建议你这样做,因为.NET SerialPort类是一个完全垃圾的部分,它会强制你进入编程风格,除了麻烦。当然你会想要隐藏你自己的包装类背后的Windows界面,但这是非常值得的。