begin process at 2012 02 11 00:33:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

API

 > 

Exporter une classe dans une DLL...


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Exporter une classe dans une DLL...

mercredi 9 janvier 2002 à 19:06:12 | Exporter une classe dans une DLL...

Clovis

Salut,
Je voudrais pouvoir exporter dans une DLL, si c'est possible, les fonctions et les objets du listing suivant. Car, je voudrais, par la suite pouvoir appeler à partir d'un autre langage, la fonction main(), exportéee dans la DLL.Le problème est qu'elle utilise des objets...

class a
{
public:
int var;
Fonction1(int nb); //Prototype de la fonction.
};

a *objet1; //Déclaration du pointeur vers l'objet.

int a::Fonction1(int nb)
{
objet1->var=nb;
return objet1->var;
}

int main()
{

objet1=new a; //Création de l'objet.

return objet1->Fonction1(8); //Retourne normalement 8.
}

//------------- FIN -----------------------



D'habitude, pour exporter mes fonctions dans une DLL ( ceci fonctionne), j'utilise le listing suivant, en créant un projet de type "MFC AppWizard (MFC)", sous Visual C++.

// Dans le fichier CPP

#include <windows.h>
#define DllImport __declspec( dllimport )
#define DllExport __declspec( dllexport )

DllExport void pascal test(void);

BOOL WINAPI DllEntryPoint (HINSTANCE hInst, DWORD ul_reason_for_call, LPVOID lpReserved)
{
return TRUE;
}

DllExport void pascal test(void)
{
MessageBox(NULL, "Ca marche !", "DLL Test", MB_OK);
}




// Dans le fichier .def

LIBRARY DLL_Test

CODE MOVEABLE DISCARDABLE
DATA SINGLE

EXPORTS
test()

// --------------- FIN ------------------


Comment fait-on pour que la fonction "test" puisse, par exemple, instancier, appeler des fonctions, ou encore modifier des variables d'une classe? Faut-il l'exporter?

Le seul moyen que j'ai trouvé pour remédier à cela est de compiler le programme en fichier EXE, puis d'appeler l'EXE avec des arguments ( du style : Result=shell("prog.exe arg1, arg2, arg3")), et d'ajouter un une boucle de récupération des arguments...Mais ce n'est pas très optimisé et surtout pas très propre!

Merci beaucoup, Clovis.



Cette discussion est classée dans : int, test, dll, exporter, objet1


Répondre à ce message

Sujets en rapport avec ce message

Uttilisation la fonction d'une DLL [ par aDebhian ] Pour ce faire, j'ai lu msdn, codes-sources et j'en suis arrivé à ceci: [FONCTION DLL] extern "C" __declspec(dllexport) int tests(int test) {     retu accéder aux éléments d'une structure déclaré en pointeur [ par snake57 ] bonjour, je bloque sur un point de mon prog (en C) a cause d'une structure dans laquelle j'arrive pas écrire. je déclare une structure de la sorte : DLL C++ [ par alonsyl ] Bonjour,Je travaille en Visual Basic et j'essaie de créer une DLL C++ afin d'effectuer du calcul matriciel. Pour l'instant, je commence petit avec la DLL et CString [ par DMK04 ] Bonjour,J'ai crée une DLL avec une fonction, qui affiche plusieurs fois la même chaîne, une fois en tant que char *, une fois en tant que CString * pu Problemme de pointeur [ par malefitrix ] Bonjour a vous,donc je vous explique. int main() { unsigned int *test=2293516;//l'adresse ou ce trouve la variale toto (prog2) printf("%p %u chargement dll c# depuis c++ [ par wislam2007 ] Salut, quand je test sur mon poste l'appel d'une dll c++ qui appel une dll (.tlb) c# ça fonctionne sans probleme, par contre quand je passe a un aut Probleme de convention? d'appel de dll dans vba [ par Jbs106 ] J'ai ouvert un projet en vc++ studio express 2008. projet win32, dll, nommée tutorial, et dans le fichier tutorial.cpp, j'ai ajouté trois fonctions: compiler c/c++ main en dll [ par bmoumen27 ] Comment compiler le code suivant en dll avec gcc [code=cpp]int main(int argc, char** argv){ //the main code here }[/code] Comment c/c++ appels .Ex Hexadécimal HELP ! [ par Xentor ] Bonjour,Mon problème est le suivant : je vient d'effectuer un AND sur une variable, et celle ci, bien que conservant son type unsigned int se met en h Exporter dll pr VB avec VC++6 [ par anthraxx ] Je n'arrive pas à creer un dll qui exporte une fonction et qui soit utilisable avec Visual Basic...Avec Visual C++ 6 j'ai cree une "dll win32"Puis j'a


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,562 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales