Problème : créer une classe dans une dll et l'exporter dans une application.
Bonjour,
Je voudrais mettre une classe dans une dll puis utiliser cette classe dans une application qui utiliserait la dll .
Seulement je n'arrive pas à instancier ma calss qui estdans la dll une fois la dll chargée.
j'ai repirs le code de la présentation suivante :
http://lfe.developpez.com/DLL/#L6
donc la class foo est exactement comme dans lexemple dans un fichier foo.cpp et foo .h
mais ca cloche quelque part.
voici le code de ma dll :
Citation:
#include "foo.h"
IMPEXP foo ;
#pragma argsused
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved)
{
return 1;
}
Voila si quelqu'un a la réponse merci.
Sinonle source de l'exemple aurait été bien utile.
désolé c'est parcequ'elle étaitdans l'exemple cité, voilà la classe
Voila le code de la classe :
.h :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
#ifdef __DLL__
#define IMPEXP __declspec(dllexport)
#else
#define IMPEXP __declspec(dllimport)
#endif
//---------------------------------------------------------------------------
IMPEXP class foo {
public:
int N1, N2, Result;
void __stdcall AddN();
int __stdcall GetResult();
foo();
}; |
.cpp
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
#include "foo.h"
foo::foo()
{
N1 =0;
N2 =0;
Result=0;
}
void __stdcall foo::AddN()
{
Result = N1 + N2;
}
int __stdcall foo::GetResult()
{
return Result;
} |
et le code d'importation :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
#include <vcl.h>
#pragma hdrstop
#include "Unit2.h"
extern "C" __declspec(dllimport) foo ;
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFormT *FormT;
//---------------------------------------------------------------------------
__fastcall TFormT::TFormT(TComponent* Owner)
: TForm(Owner)
{
foo * test ;
} |