Каким образом можно динамически определить структуру?
От: UncleFox  
Дата: 05.04.07 14:09
Оценка:
Добрый день!
Прошу прошения, если что не так, ведь это первая тема, будем, так сказать, учиться по ходу. Я уже давненько не брался за программирование на С++ (аж с 3–ого курса института), но тут судьба заставила и столкнулся с проблемой, суть которой в том что нужно по ходу программы определить структуру. Опишу подробнее:
У меня есть lib – файл, поставляемый разработчиком, и функции из него принимают в качестве параметра структуру, о которой до некоторого момента я ничего не знаю, но по её имени могу определить. При этом есть два варианта:
1. Я про неё узнаю до момента компиляции (определяю в коде);
2. Я про неё узнаю после сборки проекта (пользователь вводит имя).
После определения имени структуры я могу определить количество её членов, их тип и названия (хотя название особого смысла не несёт). Так вот каким образом я могу сгенерить эту структуру для передачи в функцию.

Заранее благодарю, за ответы.
Re: Каким образом можно динамически определить структуру?
От: Garrrrr  
Дата: 05.04.07 14:19
Оценка:
Здравствуйте, UncleFox, Вы писали:

UF>Добрый день!

UF>Прошу прошения, если что не так, ведь это первая тема, будем, так сказать, учиться по ходу. Я уже давненько не брался за программирование на С++ (аж с 3–ого курса института), но тут судьба заставила и столкнулся с проблемой, суть которой в том что нужно по ходу программы определить структуру. Опишу подробнее:
UF>У меня есть lib – файл, поставляемый разработчиком, и функции из него принимают в качестве параметра структуру, о которой до некоторого момента я ничего не знаю, но по её имени могу определить. При этом есть два варианта:
UF>1. Я про неё узнаю до момента компиляции (определяю в коде);
UF>2. Я про неё узнаю после сборки проекта (пользователь вводит имя).
UF>После определения имени структуры я могу определить количество её членов, их тип и названия (хотя название особого смысла не несёт). Так вот каким образом я могу сгенерить эту структуру для передачи в функцию.

UF>Заранее благодарю, за ответы.


Гыгы, вам в жабу. В с++ такими вещами не занимаются
Re[2]: Каким образом можно динамически определить структуру?
От: Аноним  
Дата: 05.04.07 14:31
Оценка:
К сожалению, с джавой не знаком, а вот сделать надо
Re: Каким образом можно динамически определить структуру?
От: ArtDenis Россия  
Дата: 05.04.07 14:58
Оценка:
Здравствуйте, UncleFox, Вы писали:

UF>...Так вот каким образом я могу сгенерить эту структуру для передачи в функцию.


Для этого достаточно методом научного тыка исследовать платформо-зависимую реализацию расположения полей структуры в памяти, а по полученным релультатам написать код, который будет генерировать "вирутальную" структуру по её описанию.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
Re[2]: Каким образом можно динамически определить структуру?
От: ArtDenis Россия  
Дата: 05.04.07 14:59
Оценка:
Здравствуйте, ArtDenis, Вы писали:

AD>Для этого достаточно методом научного тыка исследовать платформо-зависимую реализацию расположения полей структуры в памяти


Имеется ввиду конечно общие принципы, по которым компилятор расставляет и выравнивает поля структуры
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
[ 🎯 Дартс-лига Уфы | 🌙 Программа для сложения астрофото ]
Re: Каким образом можно динамически определить структуру?
От: Аноним  
Дата: 05.04.07 15:32
Оценка:
Здравствуйте, UncleFox, Вы писали:


UF>Так вот каким образом я могу сгенерить эту структуру для передачи в функцию.


Динамические деревья.
Данные в XML формате.
Сериализация данных в общем...
Re[2]: Каким образом можно динамически определить структуру?
От: x-code  
Дата: 05.04.07 17:03
Оценка:
Здравствуйте, Garrrrr, Вы писали:

G>Гыгы, вам в жабу. В с++ такими вещами не занимаются

оффтоп, конечно, просто интересно — как такое делать в джаве? что, там можно в рантайме создать структуру и с ней работать как с обычной?
Re: Каким образом можно динамически определить структуру?
От: Аноним  
Дата: 05.04.07 18:16
Оценка:
продефайнить все варианты структуры и написать шаблонную функцию для работы с ней подойдет?
Re[2]: Каким образом можно динамически определить структуру?
От: UncleFox  
Дата: 06.04.07 05:06
Оценка:
К сожалению нет, вариантов сотни.
Re[3]: Каким образом можно динамически определить структуру?
От: Аноним  
Дата: 06.04.07 05:52
Оценка:
Здравствуйте, UncleFox, Вы писали:

UF>К сожалению нет, вариантов сотни.

А что с этими структурами делать Вы собираетесь? Вариантов может быть и сотни, а кирпичиков раз-два и обчелся:
— целое число
— число с плавающей точкой
— время
— деньги
— контейнер этих структур
Re: Каким образом можно динамически определить структуру?
От: Sm0ke Россия ksi
Дата: 06.04.07 06:34
Оценка:
Здравствуйте, UncleFox, Вы писали:

UF>Добрый день!

UF>Прошу прошения, если что не так, ведь это первая тема, будем, так сказать, учиться по ходу. Я уже давненько не брался за программирование на С++ (аж с 3–ого курса института), но тут судьба заставила и столкнулся с проблемой, суть которой в том что нужно по ходу программы определить структуру. Опишу подробнее:
UF>У меня есть lib – файл, поставляемый разработчиком, и функции из него принимают в качестве параметра структуру, о которой до некоторого момента я ничего не знаю, но по её имени могу определить. При этом есть два варианта:
UF>1. Я про неё узнаю до момента компиляции (определяю в коде);
UF>2. Я про неё узнаю после сборки проекта (пользователь вводит имя).
UF>После определения имени структуры я могу определить количество её членов, их тип и названия (хотя название особого смысла не несёт). Так вот каким образом я могу сгенерить эту структуру для передачи в функцию.

UF>Заранее благодарю, за ответы.


Каким образом вы узнаете кол-во членов структуры и их типы?
Re[2]: Каким образом можно динамически определить структуру?
От: UncleFox  
Дата: 06.04.07 06:59
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Динамические деревья.

А>Данные в XML формате.
А>Сериализация данных в общем...

Всёравно не понятно каким образом дерево или хмл станет Struct {...};
Или я просто чего — то не догоняю?
Re[3]: Каким образом можно динамически определить структуру?
От: Аноним  
Дата: 06.04.07 07:11
Оценка:
UF>К сожалению нет, вариантов сотни.
В таком случае адресная арифметика вам в руки.
Re[2]: Каким образом можно динамически определить структуру?
От: UncleFox  
Дата: 06.04.07 07:41
Оценка:
Здравствуйте, Sm0ke, Вы писали:
S>Каким образом вы узнаете кол-во членов структуры и их типы?

Дело в том, что структура, которую мне надо сгенерить — это описание таблицы, а ещё есть такая сущность как словарь, он по своей сути тоже является таблицей, но хранит данные о других таблицах, ключах и т.п..
Re[4]: Каким образом можно динамически определить структуру?
От: UncleFox  
Дата: 06.04.07 07:51
Оценка:
Здравствуйте, Аноним, Вы писали:

А>А что с этими структурами делать Вы собираетесь? Вариантов может быть и сотни, а кирпичиков раз-два и обчелся:

А>- целое число
А>- число с плавающей точкой
А>- время
А>- деньги
А>- контейнер этих структур

На данный момент есть:
BTI_LONG;
BTI_ULONG
BTI_SINT;
BTI_WORD;
BTI_INT;
BTI_CHAR;
BTI_BYTE;
BTI_VOID;
+
структуры MONEY_STRUCT,DATE_STRUCT

Но это не исчерпывающий список
Re: Каким образом можно динамически определить структуру?
От: sc Россия  
Дата: 06.04.07 08:06
Оценка: 3 (1)
Здравствуйте, UncleFox, Вы писали:

<skipped>

встроить интерпретатор языка с динамической типизацией (python, etc)?
Re[3]: Каким образом можно динамически определить структуру?
От: Sm0ke Россия ksi
Дата: 06.04.07 09:02
Оценка:
Здравствуйте, UncleFox, Вы писали:

UF>Здравствуйте, Sm0ke, Вы писали:

S>>Каким образом вы узнаете кол-во членов структуры и их типы?

UF>Дело в том, что структура, которую мне надо сгенерить — это описание таблицы, а ещё есть такая сущность как словарь, он по своей сути тоже является таблицей, но хранит данные о других таблицах, ключах и т.п..


Приведите минимальный код.
А то очень расплывчато получается...
Re[3]: Каким образом можно динамически определить структуру?
От: Аноним  
Дата: 06.04.07 09:16
Оценка:
Здравствуйте, UncleFox, Вы писали:

UF>Здравствуйте, Аноним, Вы писали:


А>>Динамические деревья.

А>>Данные в XML формате.
А>>Сериализация данных в общем...

UF>Всёравно не понятно каким образом дерево или хмл станет Struct {...};

UF>Или я просто чего — то не догоняю?

Ты слишком зациклен на статическом определении данных.
Твоя задача вообще говоря довольно стандартна.
Тебе надо передать данные с динамической структурой,
а не struct {...};
Способов как это сделать — вагон.
Например с помощью односвязных списков:
enum MyListType
{
   IntType,
   DoubleType,
   StringType,
};

struct MyList
{
  void *pData;  // указатель на элемент данных, хранимый в жанном узле
  MyListType dataType; // идентификатор типа
  MyBinTree *pNext; // указатель на следующий элемент списка.
 }


С помощью такой нехитрой структуры ты сможешь передавать упорядоченные коллекции данных
произвольного типа...

Принимающей стороне надо будет просто научиться работать с данными в таком формате.
Понятно, что это всего лишь схема, но таким образом твою задачу решить можно.
Re[4]: Каким образом можно динамически определить структуру?
От: sc Россия  
Дата: 06.04.07 09:21
Оценка:
Здравствуйте, Аноним, Вы писали:

<skipped>

А>Ты слишком зациклен на статическом определении данных.

А>Твоя задача вообще говоря довольно стандартна.
А>Тебе надо передать данные с динамической структурой,
А>а не struct {...};
А>Способов как это сделать — вагон.
А>Например с помощью односвязных списков:
А>
А>enum MyListType
А>{
А>   IntType,
А>   DoubleType,
А>   StringType,
А>};

А>struct MyList
А>{
А>  void *pData;  // указатель на элемент данных, хранимый в жанном узле
А>  MyListType dataType; // идентификатор типа
А>  MyBinTree *pNext; // указатель на следующий элемент списка.
А> }
А>


А>С помощью такой нехитрой структуры ты сможешь передавать упорядоченные коллекции данных

А>произвольного типа...

А>Принимающей стороне надо будет просто научиться работать с данными в таком формате.

А>Понятно, что это всего лишь схема, но таким образом твою задачу решить можно.

тогда может уж лучше boost::tuple использовать?
Re[5]: Каким образом можно динамически определить структуру?
От: Аноним  
Дата: 06.04.07 09:27
Оценка:
Здравствуйте, sc, Вы писали:

sc>тогда может уж лучше boost::tuple использовать?


Дак это уже детали...
Я просто привел схему, чтобы автор топика понял идею.
Re[5]: Каким образом можно динамически определить структуру?
От: Аноним  
Дата: 06.04.07 09:29
Оценка:
Здравствуйте, UncleFox, Вы писали:

UF>На данный момент есть:

UF>BTI_LONG;
UF>BTI_ULONG
UF>BTI_SINT;
UF>BTI_WORD;
UF>BTI_INT;
UF>BTI_CHAR;
UF>BTI_BYTE;
UF>BTI_VOID;
UF>+
UF>структуры MONEY_STRUCT,DATE_STRUCT
UF>Но это не исчерпывающий список
Это явно не сотня. При этом боьшую часть этого дела можно зашаблонить.
Re[4]: Каким образом можно динамически определить структуру?
От: UncleFox  
Дата: 06.04.07 09:36
Оценка:
Я, конечно, попробую, но IMHO никакая динамика не прокатит, дело в том что на принимающую сторону никак не могу повлиять, это lib производителя. Притом, к принимаемой структуре он весьма чувствителен, если даже поменять два элемента в структуре местами, то он уже кричит и рухает .
Re[5]: Каким образом можно динамически определить структуру?
От: Аноним  
Дата: 06.04.07 09:40
Оценка:
Здравствуйте, UncleFox, Вы писали:

UF>Я, конечно, попробую, но IMHO никакая динамика не прокатит, дело в том что на принимающую сторону никак не могу повлиять, это lib производителя. Притом, к принимаемой структуре он весьма чувствителен, если даже поменять два элемента в структуре местами, то он уже кричит и рухает .


Ну в этом случае у тебя нету вариантов.
Если ты пользуешься уже готовой библиотекой, то ты можешь ее использовать
только так, как предусмотрели разработчики.
Нету предмета для обсуждений...
Re[3]: Каким образом можно динамически определить структуру?
От: vpavel  
Дата: 06.04.07 10:44
Оценка:
Здравствуйте, UncleFox, Вы писали:

UF>Здравствуйте, Sm0ke, Вы писали:

S>>Каким образом вы узнаете кол-во членов структуры и их типы?

UF>Дело в том, что структура, которую мне надо сгенерить — это описание таблицы, а ещё есть такая сущность как словарь, он по своей сути тоже является таблицей, но хранит данные о других таблицах, ключах и т.п..


Все равно ничего не понятно из того, что нужно получить. Хотя бы знать, в каком виде библиотека принимает данные и как их обрабатывает. Должен быть хоть какой-то намек на алгоритм, содержание и т. д.

А так можно рекордсет создать и писать туда все, что угодно.
Re[6]: Каким образом можно динамически определить структуру?
От: UncleFox  
Дата: 06.04.07 10:58
Оценка:
А>Это явно не сотня. При этом боьшую часть этого дела можно зашаблонить.

Это возможные типы полей структуры, а самих структур сотня
Re[4]: Каким образом можно динамически определить структуру?
От: UncleFox  
Дата: 06.04.07 11:03
Оценка:
Вот пример одной из структур, которую правда пришлось пробить руками.

typedef struct
{
    BTI_ULONG Lo;
    BTI_ULONG Hi;
} RS_MONEY_STRUCT;

typedef struct
{
    /*unsigned char*/BTI_BYTE day ;           /* Day of month */
    /*unsigned char*/BTI_BYTE mon ;           /* Month */
    /*unsigned short int*/BTI_WORD year ;     /* Year (4-digit) */  
} RS_DATE_STRUCT;

typedef struct
{
    BTI_LONG Referenc;               //LONG        4 Уникальный первичный идентификатор
    BTI_LONG CodClient;              //LONG        4 Код клиента
    BTI_SINT IsCur;              //INT         2 Признак валюты
    BTI_SINT FNCash;                  //INT         2 Номер кассы
    BTI_CHAR Account[26];            //STRING     26 Номер лицевого счета
    BTI_CHAR Open_Close;             //CHR         1 Флаг "Открыт-Закрыт"
    BTI_SINT Oper;                    //INT         2 Операционист
    BTI_CHAR GroupNumb[13];          //STRING     13 Группа нумерации
    BTI_CHAR Type_Account[13];       //STRING     13 Тип вклада
    BTI_LONG Number;                 //LONG        4 Порядковый номер внутри группы
    BTI_CHAR SvodAccount[26];        //STRING     26 Номер договора
    BTI_SINT Code_Currency;           //INT         2 Код валюты
    BTI_LONG NumSession;             //LONG        4 Номер сессии последней выгрузки
    BTI_BYTE Reserve0;               //UCHR        1
    RS_MONEY_STRUCT Sum_Out;         //MONEY       8 Расход
    RS_MONEY_STRUCT Sum_In;          //MONEY       8 Приход
    RS_MONEY_STRUCT Sum_Rest;        //MONEY       8 Остаток
    RS_DATE_STRUCT Final_Date;           //DATE        4 Дата последней проводки
    RS_DATE_STRUCT Open_Date;            //DATE        4 Дата открытия счета
    RS_DATE_STRUCT Close_Date;           //DATE        4 Дата закрытия счета
    BTI_SINT NCurLine;                //INT         2 Номер строки в сберкнижке
    RS_MONEY_STRUCT Limit;           //MONEY       8 Лимит
    BTI_CHAR FlagTrast;              //CHR         1 Флаг доверенности
    BTI_CHAR FlagWill;               //CHR         1 Флаг завещания
    BTI_CHAR Givebook;               //CHR         1 Флаг выдачи сберкнижки
    BTI_SINT Action;                  //INT         2 Признак посл.действия над записью
    BTI_CHAR SpecialAccess;          //CHR         1 Спецдоступ
    RS_MONEY_STRUCT SumPercOut;      //MONEY       8 Сумма % выданная по опер.выдачи %
    BTI_CHAR ConvertRec;             //CHR         1 Существуют доп. записи в auxinfo
    BTI_SINT S_NumAccounts;           //INT         2 Число счетов, входящих в неподв.
    RS_MONEY_STRUCT StaticRest;      //MONEY       8 Ост. на неподв. вкладе для данн.
    BTI_CHAR StaticPaid;             //CHR         1 Неподвижный вклад выплачен
    RS_DATE_STRUCT RenumDate;           //DATE        4 Дата последней перенумерации
    BTI_CHAR UserTypeAccount[9];     //STRING      9 Пользовательский тип счета
    BTI_CHAR PrevAccount[26];        //STRING     26 Предыдущий номер счета
    RS_DATE_STRUCT UnitPayDate;         //DATE        4 Дата выплаты объединенного
    BTI_LONG UnitPayDocNum;          //LONG        4 Номер документа о выплате объедин
    RS_DATE_STRUCT Limit_Date;          //DATE        4 Дата, до которой операции не пров
    BTI_CHAR ArhFlag;                //CHR         1 Признак выгрузки док.в файлы очис
    RS_MONEY_STRUCT ArrestedSum;     //MONEY       8 Сумма частичного ареста
    BTI_CHAR Author;                 //CHR         1 Клиент, открывший счет
    BTI_CHAR TypeOpen;               //CHR         1 Вид открытия счета
    BTI_LONG OpenClient;             //LONG        4 Клиент, открывший счет (вноситель
    BTI_CHAR BookType;               //CHR         1 Вид сберкнижки, выданной по счету
    BTI_BYTE NumberLostSBBook;       //UCHR        1 Номер потеряной сберкнижки
    BTI_LONG MainContractID;         //LONG        4 ID договора для основного счета
    BTI_LONG MainParrentRef;         //LONG        4 AK категории, по которой открыт с
    BTI_CHAR Reserved[100];          //STRING    100 РЕЗЕРВ
} RS_DEPOSITR_STRUCT;
Re[5]: Каким образом можно динамически определить структуру?
От: vpavel  
Дата: 06.04.07 11:09
Оценка:
Здравствуйте, UncleFox, Вы писали:

UF>Вот пример одной из структур, которую правда пришлось пробить руками.


UF>
UF>


И как это все используется?
Re: Каким образом можно динамически определить структуру?
От: Кодт Россия  
Дата: 06.04.07 11:12
Оценка:
Здравствуйте, UncleFox, Вы писали:

UF>У меня есть lib – файл, поставляемый разработчиком, и функции из него принимают в качестве параметра структуру, о которой до некоторого момента я ничего не знаю, но по её имени могу определить. При этом есть два варианта:

UF>1. Я про неё узнаю до момента компиляции (определяю в коде);
UF>2. Я про неё узнаю после сборки проекта (пользователь вводит имя).
UF>После определения имени структуры я могу определить количество её членов, их тип и названия (хотя название особого смысла не несёт). Так вот каким образом я могу сгенерить эту структуру для передачи в функцию.

Может быть, так.
Создаёшь сущность "описание структуры", отвечающую (в рантайме) на вопросы:
— размер структуры в байтах
— количество полей
— смещения, типы, имена полей
На основе её можно сделать функции создания и доступа к массиву байтов как к произвольной структуре.

Что-то в таком роде
struct FieldInfo
{
    string name;
    int offset;
    VAR_TYPE type; // набор констант VT_..., думаю, неплохо справится с этой ролью
    
    int const bytesize() const { /* функция от type */ }
    
    // трактует массив байтов как число, со смещением offset
    int get_int(char const* bytes) const { /* в зависимости от type - 1-, 2-, 4-байтное целое */ }
    double get_double(char const* bytes) const { /* --"-- 4- или 8-байтное плавающее */ }
    
    void set_int(char const* bytes, int value);
    void set_double(char const* bytes, double value);
    // и т.п.
};

struct StructInfo
{
    int bytesize;
    vector<FieldInfo> fields; // или multi_index, упорядоченный по name и по offset
    
    void add(FieldInfo fi)
    {
        fi.offset = bytesize;

        bytesize += fi.bytesize();
        fields.push_back(fi);
    }
};

class RuntimeStruct
{
    shared_ptr<StructInfo const> m_si;
    vector<char> m_bytes;
public:
    explicit RuntimeStruct(shared_ptr<StructInfo const> si) : m_si(si), m_bytes(si->bytesize) {}
    
    char const* bytes() const { return &m_bytes[0]); }
    char      * bytes()       { return &m_bytes[0]); }
    
    FieldInfo const& field(string name) const { /* поиск в m_si->fields по name; исключение, если не найдено */ }

    int get_int(string name) const
    {
        return field(name).get_int(bytes());
    }
    double get_double(string name) const
    {
        return field(name).get_double(bytes());
    }
    .....
};
... << RSDN@Home 1.2.0 alpha rev. 655>>
Перекуём баги на фичи!
Re[6]: Каким образом можно динамически определить структуру?
От: UncleFox  
Дата: 06.04.07 11:15
Оценка:
Эта структура передаётся в качестве параметра в ф-ию из lib-а, но дело в том, что таких возможных структур более сотни, но по названию структуры, как я говорил, могу узнать и количество её членов, и тип, и названия. Так вот мне и надо сформировать структуру для передачи по ходу дела.
Re[5]: Каким образом можно динамически определить структуру?
От: Аноним  
Дата: 06.04.07 11:15
Оценка:
Здравствуйте, UncleFox, Вы писали:

UF>Вот пример одной из структур, которую правда пришлось пробить руками.


Тебе не на форуме надо стпрашивать, а документацию к библиотеке внимательно читать.
Еще можно прямо у разработчиков спросить.
Никто тут тебе не поможет решить твою проблему с помощью неизвестной библиотеки.

Если это известная библиотека, то надо именно про нее спрашивать.
Re[6]: Каким образом можно динамически определить структуру?
От: UncleFox  
Дата: 06.04.07 11:18
Оценка:
А>Нету предмета для обсуждений...

Так вопрос и был, как получить нужную структуру по ходу
Re[6]: Каким образом можно динамически определить структуру?
От: UncleFox  
Дата: 06.04.07 11:29
Оценка:
А>Тебе не на форуме надо стпрашивать, а документацию к библиотеке внимательно читать.
А>Еще можно прямо у разработчиков спросить.
А>Никто тут тебе не поможет решить твою проблему с помощью неизвестной библиотеки.

А>Если это известная библиотека, то надо именно про нее спрашивать.


Вопрос не о библиотеке, а о структуре и как её получить. И в названии написано: "Каким образом можно динамически определить структуру?". Разработчик сказал: в качестве параметра ф-ия получает структуру, и чего тут с ним обсуждать. А вот каким образом кодер это сделает, его (разработчика) не касается. Вот я и спросил о возможных вариантах. Я точно знаю, что такое есть, так как видел, как это работает в компании ... (нет места рекламе), но они само собой не откроют своих секретов.
Я не гуру в кодинге, вот и думаю, может, кто подскажет.
Re[7]: Каким образом можно динамически определить структуру?
От: sc Россия  
Дата: 06.04.07 15:07
Оценка: 1 (1)
Здравствуйте, UncleFox, Вы писали:

UF>Эта структура передаётся в качестве параметра в ф-ию из lib-а, но дело в том, что таких возможных структур более сотни, но по названию структуры, как я говорил, могу узнать и количество её членов, и тип, и названия. Так вот мне и надо сформировать структуру для передачи по ходу дела.


И в чем смысл формировать ее в рантайме?
Не лучше ли определить все структуры как положено в компайлтайме?
Re[7]: Каким образом можно динамически определить структуру?
От: Sergey Россия  
Дата: 06.04.07 15:27
Оценка:
Здравствуйте, UncleFox, Вы писали:

А>>Тебе не на форуме надо стпрашивать, а документацию к библиотеке внимательно читать.

А>>Еще можно прямо у разработчиков спросить.
А>>Никто тут тебе не поможет решить твою проблему с помощью неизвестной библиотеки.

А>>Если это известная библиотека, то надо именно про нее спрашивать.


UF>Вопрос не о библиотеке, а о структуре и как её получить. И в названии написано: "Каким образом можно динамически определить структуру?". Разработчик сказал: в качестве параметра ф-ия получает структуру, и чего тут с ним обсуждать. А вот каким образом кодер это сделает, его (разработчика) не касается. Вот я и спросил о возможных вариантах. Я точно знаю, что такое есть, так как видел, как это работает в компании ... (нет места рекламе), но они само собой не откроют своих секретов.

UF>Я не гуру в кодинге, вот и думаю, может, кто подскажет.

Вопрос в том, что вы потом собираетесь делать с этими структурами. Ведь раз их 100 штук, то наверняка функция просто умеет делать 100 разных действий с разным набором аргументов. Я не знаю, почему разработчик решил сделать 1 функцию с таким вот полиморфным параметром, но прежде чем учиться генерировать эти структуры, вы должны четко представлять, чем вы их будете заполнять и как интерпетировать результаты работы функции.
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.