begin process at 2012 05 28 13:08:28
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Divers

 > 

appeler une fonction depuis une dll


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

appeler une fonction depuis une dll

mercredi 11 août 2004 à 18:52:28 | appeler une fonction depuis une dll

pichu

bonjour,
je voudrais savoir comment il pourrait être possible depuis une dll, d'apeler une fonction public de l'application ayant appelé cette même dll.
De même pour l'accès à une variable public du programme principal.

merci à vous.

++
mercredi 11 août 2004 à 18:57:51 | Re : appeler une fonction depuis une dll

BruNews

Administrateur CodeS-SourceS
Arnotic a fait une source demo de cela.
Tu dois donner a la dll un pointeur sur cette fonction sinon elle n'en aura pas connaissance.

ciao...
BruNews, Admin CS, MVP Visual C++
mercredi 11 août 2004 à 22:08:00 | Re : appeler une fonction depuis une dll

pichu

ok, j'avais pourtant cherche..
je pense que c callback dll le sujet, faut le savoir
merci beaucoup
jeudi 12 août 2004 à 13:16:34 | appeler une fonction depuis une dll en VC++

pichu

le source n'est pas du VC++... n'y en a t'il pas eu speciale visual C++?
merci
jeudi 12 août 2004 à 13:23:14 | Re : appeler une fonction depuis une dll

BruNews

Administrateur CodeS-SourceS
Arnotic n'emplois QUE VC++, est en version 2003.
Refais tes projets vides et te suffit de copier le code ou direct les fichiers dans tes projets.

ciao...
BruNews, Admin CS, MVP Visual C++
jeudi 12 août 2004 à 14:52:21 | Re : appeler une fonction depuis une dll

pichu

je n'y arrive pas

je fait dans mon exe :
void InitExp::appel_dll()
{

HINSTANCE hDLL;
typedef int (__stdcall* lpDemandeCallBack) (DWORD dwAddrCallBack);
lpDemandeCallBack DemandeCallBack;

hDLL = LoadLibrary("testdll2.dll");

if (hDLL == NULL)
AfxMessageBox( "Impossible d'accéder à la DL.");

DemandeCallBack = (lpDemandeCallBack) GetProcAddress((HINSTANCE)hDLL, "DemandeCallMyCallBack");

if (DemandeCallBack == NULL)
AfxMessageBox("Impossible de trouver l'adresse de la fonction");

DemandeCallBack(&InitExp::MyCallBack);

FreeLibrary((HINSTANCE)hDLL);

}

void __stdcall CALLBACK InitExp::MyCallBack(char *szMsg) {
AfxMessageBox(szMsg);
}





et dans la dll :

void MyCallBack(char *szMsg);

void DemandeCallMyCallBack(DWORD dwAddrCallBack)
{

AfxMessageBox("dans dll");
typedef int (__stdcall* lpMyCallBack) (LPSTR szMsg);
lpMyCallBack MyCallBack;

MyCallBack = (lpMyCallBack) dwAddrCallBack;
MyCallBack("Petit coucou de la DLL.");

}




je n'arrive pas a passer un parametre que le compilateur accepte dans DemandeCallBack(&InitExp::MyCallBack);

comment faire?
merci
jeudi 12 août 2004 à 14:57:39 | Re : appeler une fonction depuis une dll

BruNews

Administrateur CodeS-SourceS
C'est pas vrai, encore MFC et ennuis qui vont avec...

Declare fonction en __stdcall (ou WINAPI idem) pour qu'elle ait adresse fixe connue a la compilation.
Idem dans les classes func doit etre mise 'static' pour adresse fixe.

ciao...
BruNews, Admin CS, MVP Visual C++
jeudi 12 août 2004 à 15:25:16 | Re : appeler une fonction depuis une dll

pichu

le pb est a la compilation, le cimpilateur fait une erreur a la ligne ou il y a DemandeCallBack(&InitExp::MyCallBack);

il me dit : error C2664: 'int (unsigned long)' : cannot convert parameter 1 from 'void (__stdcall *)(char *)' to 'unsigned long'
This conversion requires a reinterpret_cast, a C-style cast or function-style cast


je n'y connait rien en pointeur de fonctions, et je sais pas quoi lui mettre d'autre en parametres..
le fait de mettre __stdcall et de mettre static MyCallBack ne change pas le pb d'erreur de compilations


au fait est il posssible de passer a la dll un pointeur de l'appli exe pour que le dll puisse acceder aux fonction et variables publiques?


merci


Cette discussion est classée dans : fonction, public, dll, appeler


Répondre à ce message

Sujets en rapport avec ce message

Appeler une fonction VB à partir de C++ [ par doggyk ] Bonjour à tous!Voilà, je souhaiterais appeler une fonction VB à partir d'une DLL C++ (appelée auparavant par mon prog VB).En gros:Démarrage du prog Y dll [ par wasaikos ] salut à tous,j'ai une grande question!!j'aimerais savoir comment appeler une fonction membre d'une classe d'une dll.j'utilise windev 11 et le problème appeler une fonction c++ contenu dans dll avec de code c++ [ par avg ] j'ai une fonction qui est sous une class dans un dll déclarer comme ce ci : [code=cpp]C_MORPHO_User::C_MORPHO_User()[/code] j'ai appeler dll avec Load problème de passage de fonctions via dll [ par youppyy ] Bonjour, J'ai deux fonctions sont enregistrées dans une dll ecrite en langage C sur Dec-c++ : J'ai une fonction A qui renvoie une donnée et une fonct Appel DLL C++ depuis NSDK [ par wislam2007 ] Salut les amis, franchement dans la merde! avec une dll c++. Je doit appelé une methode de cette DLL depuis une environnement NSDK, Sachant que cette Comment appeler une méthode d'une classe d'une DLL c# avec c++ [ par dorras7 ] Bonjour,Mon problème est le suivant : je ne sais pas comment faire en C++ pour appeler une méthode d'une classe contenue dans une DLL ActiveX écrite e Obtenir l'handle d'une DLL [ par TryToHelpMe ] Bonjour,J'ai un nouveau problème que je n'arrive pas à résoudre.J'ai besoin de récupérer l'handle de ma DLL.Je fait appel à ma DLL depuis un programme Pb Hook.... [ par Mr_Coinche ] Bonjour,J'ai crée une dll très simple appelée "DllMaths.dll", qui contient deux fonctions, "carre" et "cube", je vous laisse deviner ce que ces foncti Probleme : creation d' une interface graphique par dll ... :-s [ par GeroXXXX ] Bonjour a tous :) Alors voici mon problème... Je suis actuellement sur la création d' un plugin en c++ ( dll ) pour Xchat : http://www.ircfr.com/code DLL et GDI [ par Tuizi ] Bonjour,J'aurais voulus savoir s'il y avait des chose particulière à faire pour utiliser MFC & les fonctions du GDI dans une DLL?En effet, ma fonction


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 1,357 sec (3)

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