begin process at 2012 05 29 15:16:18
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Fichier / Disque

 > 

pb d'appel de fonctions (DLL en linkage dynamique)


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

pb d'appel de fonctions (DLL en linkage dynamique)

lundi 27 décembre 2004 à 19:38:52 | pb d'appel de fonctions (DLL en linkage dynamique)

Gendal67


Bonsoir all,

Je souhaiterai faire un appel de fonction définie dans un fichier .DLL de manière dynamque etc...jusque la pas de pb, mais je en comprend pas pourquoi le prog ne trouve pas la fonction!! :(

/* code dans le .cpp de la dll... */

#define DLLEXPORT __declspec (dllexport)

bool DLLEXPORT EncodeToDff(char* fichier, char* dest) {

//instructions
}

/* dans mon programme... */

case WM_PAINT:

HINSTANCE hDll;
hDll = LoadLibrary("DffEncoding.dll");

typedef bool (_stdcall* ENCODE) (char*, char*);

ENCODE pEncode;
pEncode = (ENCODE) GetProcAddress(hDll, "EncodeToDff");

if (pEncode)
(pEncode)("fond.bmp", "fond.dff"); // retourne TOUJOURS 0! :(


Voila, pEncode vaut toujours 0....comme si le nom de la fonction n'était pas le bon :s je en sais pas quoi faire....:|

Gendal67, Dev-C++ 4.9.9.1, J'adore cppfrance!! :-))
lundi 27 décembre 2004 à 20:01:08 | Re : pb d'appel de fonctions (DLL en linkage dynamique)

JCDjcd

que vaut hDll ? (NULL ?)

une question : pourquoi faire tout cela dans le WM_PAINT, il suffit de le faire dans le WM_CREATE et de stocker une bonne fois pour tout pEncode dasn une variable.


Pourquoi faire simple quand on peut faire compliquer ?
lundi 27 décembre 2004 à 21:00:43 | Re : pb d'appel de fonctions (DLL en linkage dynamique)

Gendal67


Bon, on va reprendre point par point :

Numéro1, je ne suis pas suffisamment stupide pour ne pas tester la valeur de hDll et venir poster ici en demandant de l'aide! Oui, pour répondre à ta question, j'ai vérifié, et hDll n'est pas égal à NULL!

Numéro 2, j'utilise une dialogbox, donc ton message WM_CREATE.....tu vois, tu peux te le garder....(j'ai fait avec WM_INITDIALOG et cela n'a rien changé pour info)

Numéro3, je ne comprend en rien ta phrase, ou plutot ta critique "Pourquoi faire simple quand on peut faire compliquer ?" <<< explique moi où est le compliqué dans ce code et surtout, donne moi voir la méthode facile, si d'après toi il y en a une!

Voila, sur ce je pourrais ajouter un numéro 4 : tu as le droit de parler sans agressivité, je ne suis pas ton chien, si tu n'as pas envie de m'aider, ne poste pas tes messages tes messages pourris qui n'avancent à rien....

Gendal67, Dev-C++ 4.9.9.1, J'adore cppfrance!! :-))
lundi 27 décembre 2004 à 21:11:00 | Re : pb d'appel de fonctions (DLL en linkage dynamique)

BruNews

Administrateur CodeS-SourceS
Gendal67 > faudrait repondre aux gens de maniere courtoise, JCDjcd ne t'a en rien agresse. Sa derniere ligne est d'un usage tout ce qu'il y a de sympa.

ciao...
BruNews, MVP VC++
lundi 27 décembre 2004 à 21:12:13 | Re : pb d'appel de fonctions (DLL en linkage dynamique)

JCDjcd

bon puisque que tu le prend ainsi ...
je ne comprends pas en quoi je suis agressive ...
et pour ta gourverne la derniere phrase n'etait pas pour toi, mais c mon "slogan", car j'aime cette phrase, mais au fait tu m'insulte en ecrivant : "Gendal67, Dev-C++ 4.9.9.1, J'adore cppfrance!! :-))"


j'essayais juste de comrpend le Pb, ce qui est le but de la question, et comme je ne suis pas devin, je ne devine pas pour quelle bonne raison cela vaut NULL.


Pour finir comme tu n'es pas stupide, tu iras surement regarder la doc de la fonction GetProcAddress pour savoir quel genre d'erreur tu as commis (mauvais argument de la fonction). Et puis il reste un derniere solution, quelle est l'erreur systeme ? (GetLastError... (j'espere que je ne t'es pas offense en rapellant le nom de cette fonction))


((((((((((Pourquoi faire simple quand on peut faire compliquer ?)))))))))) <<<< ATTENTION


:)
lundi 27 décembre 2004 à 21:29:00 | Re : pb d'appel de fonctions (DLL en linkage dynamique)

Gendal67


Bon, et sinon, pour le vif du sujet, je fais quoi ? nan, ça a l'air de coller pour la fonction....moi je c pu quoi faire....j'ai essayé avec EncodeToDffW, EncodeToDffA, EncodeToDffAW, ....:s

Gendal67, Dev-C++ 4.9.9.1, J'adore cppfrance!! :-))
lundi 27 décembre 2004 à 22:00:38 | Re : pb d'appel de fonctions (DLL en linkage dynamique)

JCDjcd

tu as essaye les librairie Dll juste dans un WinMain, sans de fenetre, pour voir si ca marchait ?
lundi 27 décembre 2004 à 22:12:35 | Re : pb d'appel de fonctions (DLL en linkage dynamique)

Gendal67


Oui, en fait, lol, j'ai eu justement cette idée! lol, je viens à l'instant de finir....voila le code...mais bon, ça ne marche pas +....:(



#include <windows.h>

HINSTANCE hInst, hDll;

typedef bool (*ENCODE) (char*, char*);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {

hInst = hInstance;

hDll = (HINSTANCE) LoadLibrary("DffEncoding.dll");

if(!hDll) {

MessageBox(0, "Impossible de charger la librairie", "Erreur au chargement", 0);
return 1;
}

ENCODE pEncode;
pEncode = (ENCODE) GetProcAddress(hDll, "EncodeToDff");

if(!pEncode) {

MessageBox(0, "Fonction non trouvée", "Fonction manquante", 0);
return 1;
}

(pEncode) ("D:\\file.bmp", "D:\\file.dff");
}


pEncode vaut toujours 0....

Gendal67, Dev-C++ 4.9.9.1, J'adore cppfrance!! :-))
lundi 27 décembre 2004 à 22:15:55 | Re : pb d'appel de fonctions (DLL en linkage dynamique)

Gendal67


Euh, je ne sais pas pk, mais cela peut-il venir d'une mauvaise exportation de la fonction de la DLL ?

voici le code dans la DLL...(dans le fichier .cpp de la DLL)


bool DLLEXPORT EncodeToDff(char* fichier, char* dest);

BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID reserved) {

switch (reason)
{
case DLL_PROCESS_ATTACH:
break;

case DLL_PROCESS_DETACH:
break;

case DLL_THREAD_ATTACH:
break;

case DLL_THREAD_DETACH:
break;
}

return TRUE;
}

bool DLLEXPORT EncodeToDff(char* fichier, char* dest) {

//instructions

}


Gendal67, Dev-C++ 4.9.9.1, J'adore cppfrance!! :-))
lundi 27 décembre 2004 à 22:34:18 | Re : pb d'appel de fonctions (DLL en linkage dynamique)

Gendal67


En regardant dans le fichier .def de ma dll, j'ai trouvé ceci :

_Z11EncodeToDffPcS_ @ 3 ; EncodeToDff(char*, char*)

J'ai compris qu'on peut utiliser le cardinal (le truc de gauche ?)..mais cela ne marche tjs pas...... :s

Gendal67, Dev-C++ 4.9.9.1, J'adore cppfrance!! :-))

1 2

Cette discussion est classée dans : pb, code, dll, char, pencode


Répondre à ce message

Sujets en rapport avec ce message

Pb code source CMphSock [ par xaviou ] Salut.J'ai téléchargé le projet "CMphSock" : Utilisation de Winsock sans MFC.Je l'ai compilé en mode Debug : tout est OKJ'ai essayé en mode Release : PB DE CHAINE DE CARACTERE [ par Orkblutt ] pkoi ceci me genere t'il une erreur a l'execution??#include void main(){ int o; o=2000; char* O=new char; itoa(o,O,10); char* ch="Fichier"; strcat(ch, PB DE CHAINE DE CARACTERE [ par Orkblutt ] pkoi ceci me genere t'il une erreur a l'execution??#include void main(){ int o; o=2000; char* O=new char; itoa(o,O,10); char* ch="Fichier"; strcat(ch, pb avec les dll !!! [ par ToasTy62 ] bon g une kestion a poser ki me tracasse... arghqd on fé une dll, on pt y mettre des variables globales, ok.ms est-ce ces variables globales sont tjrs Dll en c++ dans du code C [ par rurouni41 ] bonjour, je dois integrer une DLL codee en C++ dans un programme en c...Donc je voulais savoir s'il y avait moyen(et comment faire) d ouvrir et d'util Pb Class et pointeur ... [ par payen ] salut a tous,j'ai un petit probleme en C++: j'ai definit une class CImage, avec entre autre, un pointeur vers une variable de type char (char *nom_ima Pb avec les printf [ par PierScher ] voici le code pour afficher un pendu :printf(" ++++++++++++++++++++++++\n");printf(" Autre question sur les pointeurs [ par Darkneon ] Salut,J'ai le code suivant.#include char strA[27] = "abcdefghijklmnopqrstuvwxyz";int main(void){ char *pA; pb de polygones et autres [ par dbtm ] Salut payen, et les autres..?J'ai d'autres bugs, en plus de l'affichage de mes polygones.L'executable créé marche sous vc mais bugge quand je le lance pb avec variable [ par jeffise57 ] Please aidez moiJe reçoit comme arugument du fonction des variables unsigned char* et je doit passer dans une deuxième fonction les même arguments mai


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,733 sec (3)

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