Bonjour,
Voici mon code :
Ajout de cette ligne dans mon .pro :
DEFINES += MYSHAREDLIB_LIBRARY
header permettant d'utiliser le nouveau .pro :
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 |
fenêtre windows permettant le test de l'ouverture d'une dll :
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
} |
hearder de la fenêtre test :
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