Bonjour,
Voici mon code :
Ajout de cette ligne dans mon .pro :
header permettant d'utiliser le nouveau .pro :
Code : Sélectionner tout - Visualiser dans une fenêtre à part DEFINES += MYSHAREDLIB_LIBRARY
fenêtre windows permettant le test de l'ouverture d'une dll :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 #ifndef LIBRARY_H #define LIBRARY_H #include <QtCore/QtGlobal> #if defined(MYSHAREDLIB_LIBRARY) # define MYSHAREDLIB_EXPORT Q_DECL_EXPORT #else # define MYSHAREDLIB_EXPORT Q_DECL_IMPORT #endif #endif //LIBRARY_H
hearder de la fenêtre test :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #include "../include/Spider.h" Spider::Spider() { QDialog * test = new QDialog; HINSTANCE hlib = LoadLibrary(L"c:\\projetsQT\\essaiDvlp\\debug\\Spider32"); if (hlib == NULL) QMessageBox::critical(test,"erreur","hlib = NULL"); else QMessageBox::information(test,"Succes","Succes"); } Spider::~Spider() { //dtor }
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 #ifndef SPIDER_H #define SPIDER_H #include <QtGui> #include <QtCore> #include <iostream> #include "windows.h" #include "dllFilGlobal.h" using namespace std; class Spider { public: Spider(); virtual ~Spider(); protected: private: }; #endif // SPIDER_H
Je réalise mon code sous l'IDE code::block et je compile avec le command prompt de QT.
Avec ce code l'instance renvoryée (hlib) vaut toujours NULL, bien que la compilation se fasse sans problème... Et ce qui est d'autant plus étonnant, c'est que sur certaine dll ça ne me le fais pas...
Quelqu'un aurait-il une idée ???
Merci d'avance!
NB : Je tiens à préciser que j'ai déjà réussi a charger la dll "Spider32" en utilisant le compilateur de code::block.
Partager