Member 12330615 Ответов: 1

Как я могу определить arrary из структуры по CString?


typedef struct SerialCfgPacket // 16 bytes 설정>Serial Option에 사용
{
	char    stx;
	char    cmd;//'U','u'
	char    mac[6];
	char    portno;
	char    itf;
	char    baudrate;
	char    databit;
	char    stopbit;
	char    parity;
	char    flow;
	char    etx;
} RP_S;

SerialCfgPacket			rpdata_U[100];

int i;
CString strTmp;

if (strTmp == _T("RS232")) rpdata_U[i].itf = 0;

имеет ошибку компиляции:

'[': 'SerialCfgPacket' не определяет этот оператор или не может определить и разрешить какой-либо тип предварительно определенного оператора...и т. д

Я не знаю, почему и как это исправить.

Что я уже пробовал:

Потому что я новичок в этом объявлении структуры CString
Я потратил впустую 3 часа на эту проблему.

Заранее спасибо.

KarstenK

пропущенное сообщение об ошибке затрудняет вашу помощь.

KarstenK

попробуйте: struct SerialCfgPacket rpdata_U[100];

Plz полное сообщение об ошибке. Может быть, вы могли бы погуглить его...

Richard MacCutchan

Какая строка выдает сообщение об ошибке? Я только что скомпилировал этот код, и он не показывает никаких ошибок.

1 Ответов

Рейтинг:
11

CPallini

Тебе это не нужно. typedef в C++, просто использовать

struct SerialCfgPacket 
{
 //..
};


Цитата:
int i;
CString strTmp;

if (strTmp == _T ("RS232")) rpdata_U[i]. itf = 0;

в последнем утверждении оба strTmp и i являются неинициализированными.

Похоже, вы вставили разреженные фрагменты кода, даже не имеющие отношения к полученному сообщению об ошибке.


KarstenK

неинициализированный var - это проблема времени выполнения, которая не будет беспокоить компилятор.

CPallini

Я знаю, что.
Я просто указал на то, что нашел неправильным в коде операции.