У меня есть неуправляемое приложение на C++ (неуправляемое значение: не использовать ничего из фантазии .Net). Я хочу расширить его с помощью некоторой метаинформации, и похоже, что я могу использовать концепцию атрибутов.Можно ли использовать атрибуты в неуправляемом коде?
То, что я на самом деле пытаюсь достичь, следующее. Начиная от чего-то простого класса вроде этого:
class Book
{
public:
...
private:
string m_name;
string m_author;
int m_year;
};
Я хочу построить функции, которые могут получить доступ к «метаинформации» класса и использовать его для динамического построения логики на нем, например,
- диалог, содержащий 3 поля редактирования (название, автор, год)
- сетки данных с 3-мя столбцами
- сериализации логики
- логика, которая отображает этот класс таблицы базы данных с 3-мя колоннами
- ...
I мои самые смелые мечты Я представляю себе, изменяя этот класс, как это:
[id="Book"]
class Book
{
public:
...
private:
[id="Name", defaultValue="", maximumLength=100]
string m_name;
[id="Author", defaultValue="", maximumLength=100]
string m_author;
[id="Year", defaultValue=2000, minimum=1900]
int m_year;
};
А потом быть в состоянии получить это «мета» информацию для создания диалоговых окон, заполнение сетки данных, сериализации и десериализации экземпляров, ...
Но это понятие атрибутов, ограниченных .Net/управлении код?
И если бы я мог использовать атрибуты в неуправляемом коде, можно ли было бы сделать что-то вроде этого? И что это хорошее место для начала? (примеры, ...)
Кроме того, можно ли использовать те же (или подобные) концепции в других компиляторах, на других платформах?
Я использую Visual Studio 2010 и, как сказано ранее, неуправляемый/родной C++.
(Обратите внимание: вам не нужно указывать неуправляемый. Это просто C++. Не «неуправляемый C++». Gr Microsoft.) – GManNickG
Полностью согласен с GMan. К сожалению, как только вы начинаете искать C++ на сайтах Microsoft, они предполагают, что вы используете .Net по умолчанию. – Patrick