Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
QVO
641 / 452 / 32
Регистрация: 26.10.2010
Сообщений: 1,263
Записей в блоге: 4
Завершенные тесты: 2
#1

Различные структуры в структуре - C++

30.11.2013, 19:58. Просмотров 241. Ответов 0
Метки нет (Все метки)

Здравствуйте форумчане.

Пишу чат с возможностью регистрации, входа, добавления\удаления пользователей и т.д.
Понадобилось в структуру TPacket "паковать" другие структуру и отправлять с сервера на клиент и наоборот.

Структуры
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
enum TPacketType {
        ptRegistrations, ptLogins, ptUnLogins, ptMessages, ptAdds, ptDeletes, ptError
};
// Структура с данными для регистрации
#pragma pack(push,1)
struct TRegistration
{
    AnsiString Name;        
    AnsiString Login;
    AnsiString Password;    
} Registration;
#pragma pack(pop)
// Структура с данными для входа
#pragma pack(push,1)
struct TLogin
{
    AnsiString Login;
    AnsiString Password;    
} Login;
#pragma pack(pop)
// Пакет куда пакуются другие структуры
#pragma pack(push,1)
struct TPacket
{
    TPacketType Type;
    void *Struct;
} Packet;
#pragma pack(pop)


Делаю это так, заполняю какую-то структуру с сообщением, потом копирую ее в TPacket и отправляю.
Проблема в том, что делаю я это не правильно и поле Packet.Struct пустое.

C++
1
2
3
4
5
6
7
8
9
10
    
    // Заполняю данные для входа на сервер
    Login.Login = "Anna";
    Login.Password = "123456";
    // Указываю, что это данные для входа на сервер
    Packet.Type = ptLogins;
    // Копирую Login в Packet.Struct
    memcpy(&Login, &Packet.Struct, sizeof(TLogin));
    // Отправляю на сервер
    ClientSocket1->Socket->SendBuf(&Packet,sizeof(TPacket));
Подскажите пожалуйста идею получше, как реализовать данный момент, или в чем моя ошибка.
Заранее спасибо.

Добавлено через 20 часов 15 минут
Нужно так
C++
1
memcpy(&Packet.Struct, &Login, sizeof(TLogin));
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.11.2013, 19:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Различные структуры в структуре (C++):

Ofstream в структуре и передача этой структуры по функциям - C++
Добрый день. Задача следующая: есть структура, в данном случае - Ofstr. В ней *stream - поток на вывод. Путь передается в функцию...

структура в структуре: есть ли доступ к объектам вложенной структуры из объекта первой? - C++
Доброго времени суток! Есть структура в структуре: struct Time struct Time

Структуры и строки (как поменять значение строки в структуре?) - C++
Вопрос: как поменять значение строки в структуре? То есть, есть такой код: struct CandyBar; { char name; double m; ...

Помещение структуры в вектор, удаление структуры, изменение элементов структуры - C++
Здравствуйте. Помогите разобраться с тем, как: 1 - находить элементы в векторе зная уникальный элемент структуры. 2 - удалять...

Функция внутри структуры использует указатель, как поле этой структуры - C++
Коротко, есть класс A, описан в файле A_class.h ну и реализованы функции в A_class.cpp, есть файл GlobalItems.h, где хранятся глобальные...

Динамические структуры данных. Программа ввода в структуры и вывода информации из неё. - C++
Автоматизированная информационная система на железнодорожном вокзале содержит сведения об отправлении поездов дальнего следования. Для...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.11.2013, 19:58
Привет! Вот еще темы с ответами:

Структуры, массивы структур (как можно присваивать(инициализировать) значения полям структуры) - C++
Есть у меня вот такая структура, например struct Subject { int cost; int Volume; }; Потом создаю экземпляр, Subject G; ...

Вывод структуры, строка как элемент структуры - C++
Описать структуру с именем TRAIN, содержащую следующие поля: □ название пункта назначения; □ номер поезда; □ время отправления. ...

Исследование структуры FILE или: что вообще можно выудить из этой структуры, указатель на которую мы получаем при открытии файла? - C++
Ничего нельзя. Итак, новичкам напомню, что после выполнения кода FILE* f= fopen ("file.txt", "w"); в переменной f содержится...

Оператор if и структуры. Возвращение структуры из функции - C++
Здравствуйте, имеется такая вот функция. void InputStructEmployee (int StructSize) { StructEmployee UsrStruct; string...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru