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
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 .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
#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)  
{  }
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
#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_
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
 
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
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
 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'
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
class QX_BLOG_DLL_EXPORT author
avec la macro ? Chez moi, j'ai un message d'erreur
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.