Bonjour,
Voilà, J'ai beaucoup de zones d'ombres quant à l'utilisation de QxOrm dans un projet. Pour ce qui est de la compilation, à part changer quelques lignes dans le fichier QxOrm.pri, il n'y a pas eu trop de problèmes.
C'est à l'utilisation que j'ai des soucis.
Voici par exemple, une classe que j'ai déclarée
Voici le .cpp correspondant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 #ifndef PRODUCT_H #define PRODUCT_H #include "precompiled.h" #include <QxMemLeak.h> #include <QString> class Product { public: QString m_code; QString m_name; int m_price; public: Product(); Product(QString code, QString name, int price); virtual~Product() {} }; QX_REGISTER_HPP_PRODUCT(Product,qx::trait::no_base_class_defined,1) #endif // PRODUCT_H
Voici le contenu de mon export.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #include "product.h" QX_REGISTER_CPP_PRODUCT(Product) namespace qx { template <> void register_class(QxClass<Product> &t) { t.m_code(&Product::m_code, "code"); t.m_name(&Product::m_name, "name"); t.m_price(&Product::m_price, "price"); } } Product::Product() { } Product::Product(QString code, QString name, int price) :m_code(code), m_name(name), m_price(price) { }
Et voici mon .pro
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #ifndef PRODUCT_EXPORT_H_ #define PRODUCT_EXPORT_H_ #ifdef _BUILDING_PRODUCT #define PRODUCT_DLL_EXPORT QX_DLL_EXPORT_HELPER #else #define PRODUCT_DLL_EXPORT QX_DLL_IMPORT_HELPER #endif #ifdef _BUILDING_PRODUCT #define QX_REGISTER_HPP_PRODUCT QX_REGISTER_HPP_EXPORT_DLL #define QX_REGISTER_CPP_PRODUCT QX_REGISTER_CPP_EXPORT_DLL #else #define QX_REGISTER_HPP_PRODUCT QX_REGISTER_HPP_IMPORT_DLL #define QX_REGISTER_CPP_PRODUCT QX_REGISTER_CPP_IMPORT_DLL #endif #endif//PRODUCT_EXPORT_H_
J'ai essayé de faire ce petit test en lisant les tutoriels sur "drug" et sur qxBlog. Mais déjà à la compilation, j'ai les messages d'erreur suivants
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 QT += core sql gui TARGET = product TEMPLATE = lib CONFIG += plugin DESTDIR = ../../plugins DEFINES += _BUILDING_PRODUCT PRECOMPILED_HEADER = precompiled.h INCLUDEPATH += "C:/Program Files/QxOrm/include" LIBS += "C:/Program Files/QxOrm/lib/libQxOrmd.a" SOURCES += product.cpp HEADERS += precompiled.h \ export.h \ product.h
Est-ce que mon code est bien écrit ? Comment est-ce que je dois changer mon code lorsque je rends mes attributs privés ? Pourquoi déclarer les classes de cette manière
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 In function 'void qx::register_class(T&) [with T = qx::QxClass<Product>]': ..\product\product.cpp:9: error: 'class qx::QxClass<Product>' has no member named 'm_code' ..\product\product.cpp:10: error: 'class qx::QxClass<Product>' has no member named 'm_name' ..\product\product.cpp:11: error: 'class qx::QxClass<Product>' has no member named 'm_price'avec la macro ? Chez moi, j'ai un message d'erreur
Code : Sélectionner tout - Visualiser dans une fenêtre à part class QX_BLOG_DLL_EXPORT author.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Skip identifier QX_BLOG_DLL_EXPORT
En gros, j'aimerais des explications sur l'utilisation de QxOrm.
Excusez-moi si mes questions ont l'air terre à terre ou bêtes(peut être que je n'ai pas encore le niveau), mais j'ai vraiment besoin de comprendre l'utilisation de cette bibliothèque
Merci d'avance.
Partager