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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Списки. К каждому элементу списка прибавить значение следующего элемента списка. Последний элемент не менять http://www.cyberforum.ru/cpp-beginners/thread1023480.html
Данные списка должен ввести пользователь. Результат нужно сформировать в начальном списке, никаких новых списков создавать нельзя. Спасибо!
C++ Считывание данных с файла Здравствуйте, помогите пожалуйста, программа не может прочитать данные из файла и я не знаю почему, вот код (dev-c++) if (*c==13) { in.open(files); ... http://www.cyberforum.ru/cpp-beginners/thread1023477.html
с++ while return C++
Задание:Вводится точность e. Вычислить сумму ряда 1-1/3+1/5-1/7.... сумма Вычисления продолжать до тех пор, пока очередное слагаемое не станет меньше e. Вывести рядом пи\4 и сравнить с полученной...
C++ Задание из Страуструпа
Добрый день,дорогие форумчане.В общем читаю книжечку Страуструпа.Выполняю задания.Вот что-то у меня ступор.Прошу Вашего совета:) "Задание:Напишите программу,которая подсчитывает количество...
C++ Вывести в консоль в виде таблицы значения чисел в 16 и 10-ричном формате http://www.cyberforum.ru/cpp-beginners/thread1023470.html
Обьясните пожалуйста задание, и как его можно реализовать, выучили указатели. Задание:–виведення на консоль у вигляді таблиці значень чисел у десятковому та шістнадцятковому форматі, та їх адрес у...
C++ Условные операторы Задание: создайте условный оператор, который присваивал бы x*y для четного x, в противном случае для нечетного x и y, не равного 0, присваивал бы x/y; наконец, если ни одно из предыдущих условий не... подробнее

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

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

30.11.2013, 19:58. Просмотров 242. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.