begin process at 2012 05 29 22:45:49
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

probleme utilisation de DLL


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

probleme utilisation de DLL

mercredi 30 juillet 2003 à 10:27:28 | probleme utilisation de DLL

poseidon2

En fait je cherche a utiliser la fonction d'une de mes DLL, dans une MFC. Pour cela j'utilise la fonction donné par MSDN:


hDLL2 = LoadLibrary("HptSimLibVC");
if (hDLL2 != NULL){
__DBG_LOG("le prog trouve la dll et entre dans la fonction");
lpfnDllFunc2 = (LPFNDLLFUNC2)GetProcAddress(hDLL2,"setHptFilename");
if (!lpfnDllFunc2){
// handle the error
FreeLibrary(hDLL2);
__DBG_LOG("le prog ne trouve pas la fonction dans la dll");
}
else{
// call the function
CString Haptique="\\haptic\\haptic_";
Haptique+=JourHeure;
__DBG_LOG("%s",Haptique);
bool verif = lpfnDllFunc2(Haptique);
__DBG_LOG("le prog trouve la fonction dans la dll %d", verif);
}
__DBG_LOG("la ca marche?");
}


Cett fonction marche MAIS ferme le programe 2 seconde apres sans passer par mon: "La ca marche?".
Pour atnt j'ai bien declaré tous ce qu'il fallait :


typedef bool (CALLBACK* LPFNDLLFUNC2)(CONST CHAR*);
HINSTANCE hDLL2; // Handle to DLL
LPFNDLLFUNC2 lpfnDllFunc2; // Function pointer
CONST CHAR *strParam1;


D'ou mon incomprehension. Si qq a une idée je prends
mercredi 30 juillet 2003 à 10:36:37 | Re : probleme utilisation de DLL

JCDjcd

Essaye de faire a la fin :

__DBG_LOG("la ca marche?");
__DBG_LOG("la ca marche?");


deux fois !
Mais es-tu sur que tu passe bien par cette ligne ??
T'as fais tu pas-a-pas en debug ?







-------------------------------
Réponse au message :
-------------------------------

> En fait je cherche a utiliser la fonction d'une de mes DLL, dans une MFC. Pour cela j'utilise la fonction donné par MSDN:
>
>

> hDLL2 = LoadLibrary("HptSimLibVC");
> if (hDLL2 != NULL){
> __DBG_LOG("le prog trouve la dll et entre dans la fonction");
> lpfnDllFunc2 = (LPFNDLLFUNC2)GetProcAddress(hDLL2,"setHptFilename");
> if (!lpfnDllFunc2){
> // handle the error
> FreeLibrary(hDLL2);
> __DBG_LOG("le prog ne trouve pas la fonction dans la dll");
> }
> else{
> // call the function
> CString Haptique="\\haptic\\haptic_";
> Haptique+=JourHeure;
> __DBG_LOG("%s",Haptique);
> bool verif = lpfnDllFunc2(Haptique);
> __DBG_LOG("le prog trouve la fonction dans la dll %d", verif);
> }
> __DBG_LOG("la ca marche?");
> }
>

>
> Cett fonction marche MAIS ferme le programe 2 seconde apres sans passer par mon: "La ca marche?".
> Pour atnt j'ai bien declaré tous ce qu'il fallait :
>
>

> typedef bool (CALLBACK* LPFNDLLFUNC2)(CONST CHAR*);
> HINSTANCE hDLL2; // Handle to DLL
> LPFNDLLFUNC2 lpfnDllFunc2; // Function pointer
> CONST CHAR *strParam1;
>

>
> D'ou mon incomprehension. Si qq a une idée je prends
vendredi 1 août 2003 à 00:44:45 | Re : probleme utilisation de DLL

Arkko

Je sais que je ne repond pas a ta question mais .. serais-ce pas plus simple d'ajouter le *.lib que la compilation de ta dll a crée et ensuite inclure les fichier header de ta dll dans ton projet en remplacant les __declspec(dllexport) par __declspec(dllimport) ou tout simplement ajouter un "define" du genre

#ifdef TONPROG_EXPORTS
#define TONPROG_API __declspec(dllexport)
#else
#define TONPROG_API __declspec(dllimport)
#endif

et tu met TONPROG_EXPORTS dans les définitions
préprocesseurs
(ta declaration de fonction ce fait par exemple:
TONPROG_API HRESULT v3dCreateFullscreen(WNDPROC WndProc,char* WndClassName);
et dans ton .h (les prototypes quoi ? ;)
TONPROG_API HRESULT v3dCreateFullscreen(WNDPROC,char*);


ce serais + simple tk c mon avis mais je suis debutant ;)

-------------------------------
Réponse au message :
-------------------------------

> En fait je cherche a utiliser la fonction d'une de mes DLL, dans une MFC. Pour cela j'utilise la fonction donné par MSDN:
>
>

> hDLL2 = LoadLibrary("HptSimLibVC");
> if (hDLL2 != NULL){
> __DBG_LOG("le prog trouve la dll et entre dans la fonction");
> lpfnDllFunc2 = (LPFNDLLFUNC2)GetProcAddress(hDLL2,"setHptFilename");
> if (!lpfnDllFunc2){
> // handle the error
> FreeLibrary(hDLL2);
> __DBG_LOG("le prog ne trouve pas la fonction dans la dll");
> }
> else{
> // call the function
> CString Haptique="\\haptic\\haptic_";
> Haptique+=JourHeure;
> __DBG_LOG("%s",Haptique);
> bool verif = lpfnDllFunc2(Haptique);
> __DBG_LOG("le prog trouve la fonction dans la dll %d", verif);
> }
> __DBG_LOG("la ca marche?");
> }
>

>
> Cett fonction marche MAIS ferme le programe 2 seconde apres sans passer par mon: "La ca marche?".
> Pour atnt j'ai bien declaré tous ce qu'il fallait :
>
>

> typedef bool (CALLBACK* LPFNDLLFUNC2)(CONST CHAR*);
> HINSTANCE hDLL2; // Handle to DLL
> LPFNDLLFUNC2 lpfnDllFunc2; // Function pointer
> CONST CHAR *strParam1;
>

>
> D'ou mon incomprehension. Si qq a une idée je prends


Cette discussion est classée dans : fonction, dll, dbg, lpfndllfunc2, hdll2


Répondre à ce message

Sujets en rapport avec ce message

prob avec une dll [ par BlackWizzard ] Salut!je voudrais faire une dll avec un niveau tres bas...j'ai deja créé une dll de cryptage en me basant sur un code simple...la chose que je compren Fonction vers DLL [ par logisim ] Quelqu'un pourrait-il m'aider à transformer une fonction Visual Cpp en DLL pour Visual Basic ?En Cpp :int TradUnimarc(FILE *fpU, FILE *fdb){// code}En Dll avec c++ builder 6 [ par sebastienbro ] J'aimerais savoir comment exporter une fonction dans une DLL, et en même temp, comment importer une fonction ?merci dev c++ Api & dll [ par pounch ] Tout d'abord lu a tous comme j'en avais marre de chercher tout seul dans mon coin, ben j'a decidé de veindre Bon voila mon pr prob avec dll et lib [ par zelze ] voila mon prob:j'ai inséré le lib dan le projet, j'ai indiqué:extern "C" __declspec(dllimport) int fonction(char*);fonction(texte);mais lorsque je veu Pour les doués, moi j'en peu plus ! [ par sena ] Salutje voudrais en fait faire un passage de paramètre a une fonction dont un a une valeur par défaut. (puis inclure ca dnas une DLL)Par exemple une f Exécuter une fonction en arrière plan [ par sena ] Bonjour,j'ai créer une dll dans la quelle ce trouve une fonction d'écoute en UDP qui affiche un message dè kel recoit kelke choz.Cette fonction tourne Lien DLL 16 / API WIN32 [ par CoreBreaker ] Bonjour quelqu'un sait-il comment une fonction de l'API Win32 dans une DLL 16bits ?Et de manière générale comment appeler une fonction d'une DLL 32bit exporter une fonction [ par lahou ] Bonjourest-ce que qqn sait comment faire pour exporter une fonction d'un exe comme on le fait avec une dll avec __declspec(dllexport)En fait je veux f Erreur d'exécution après chargement dll [ par Cako19 ] Bonjour,Après avoir défini une fonction appartenant à une dll externe à mon projet, à l'aide de typedef, LoadLibrary, GetProcAdress et etc..., à l'exé


Nos sponsors


Sondage...

Comparez les prix

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 : 0,437 sec (4)

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