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

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

pb DLL


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

pb DLL

lundi 20 juin 2005 à 10:38:34 | pb DLL

mamag

Bonjour,

J'ai créer une DLL qui doit retourner plusieurs paramètres au pg appelant. cela fait plusieurs jour que j'essai de la tester, je voulais faire un programme qui faisait appel à la DLL, je me suis inspirée de plusieurs tutoriaus, masi je n'y arrive pas.
après plusieurs jours d'essais et  àforce de faire des essais, je suis complètement perdue.
Je commence à m'énervée car la DLL devrait déjà être finie!!

si quelqu'un pouvait m'aider...

Merci beaucoup.
lundi 20 juin 2005 à 10:47:59 | Re : pb DLL

BruNews

Administrateur CodeS-SourceS
Dis où tu bloques précisément sinon difficile de t'aider.
Il y a de nombreux exemples de DLLs en sources sur cppfrance, ça devrait t'inspirer.
Passe un pointeur de structure à ta DLL pour de nombreux paramètres modifiables.

ciao...
BruNews, MVP VC++
lundi 20 juin 2005 à 11:01:19 | Re : pb DLL

mamag

Voici comment j'ai créer ma DLL (car je ne sais pas si c'est vraiment exacte):

#import "C:\Program Files\Fichiers communs\System\ado\msado15.dll" no_namespace rename("EOF", "EndOfFile")
#include "ADOLib.h"
#include <windows.h>
#include "IMU_DLL.h"
//#include "IMU_DLL.h"
//#include <D:\marielle\IMU_DLL\IMU_DLL.def>CString sProvider= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\BdD.mdb;Mode=ReadWrite;Persist Security Info=False";
#include "stdafx.h"

//Fonction 1
extern "C"__declspec(dllexport) WINAPI IMU_connect(CString* etat, CString* defaut))
{....}

Et voici comment je voulais l'appeler:
#include <windows.h>
#include "StdAfx.h"
#include "Cpp1.h"

int main(void)
{
 CString* setat =new CString;
 CString* sdefaut =new CString;
 
 HMODULE hDLL = LoadLibrary("D:\\marielle\\IMUDLL2\\IMU_DLL.dll");
 if(!hDLL) 
 {
  MessageBox(NULL, "Impossible de chargée la DLL...", "Erreur", MB_ICONERROR);
  printf("erreur");
  return 0;
 }
 DLL_Function_Imu_connect ptr_IMU;

 ptr_IMU = (DLL_Function_Imu_connect)GetProcAddress(hDLL, "IMU_connect");
 if (!ptr_IMU)
 {//erreur
  MessageBox(NULL, "erreur los de l'allouage...","erreur", MB_ICONERROR);
  FreeLibrary(hDLL);
 }
 ptr_IMU(CString& etat, CSring& defaut);
 //Et on libère la DLL*/
 cout<<*setat;
 cout<<*sdefaut;
 FreeLibrary(hDLL);
 return 0;
}
avec Cpp1.h:
#ifdef __IMU_DLL_H
#define __IMU_DLL_H
#include<Windows.h>

#if defined(__cplusplus)
extern "C"{
#endif

 typdef void (WINAPI *DLL_Function_Imu_connect) (CString *setat, CString *defaut);

#if defined (_cplusplus)
}
#endif

#endif __IMU_DLL_

et j'ai pal mal d'erreur, comme quoi, il ne reconnait aps la fonction Imu_connect et le pointeur de fonction

Merci pour votre aide!

lundi 20 juin 2005 à 11:24:43 | Re : pb DLL

BruNews

Administrateur CodeS-SourceS
Vérif que tu as bien mis le .lib de Imu_connect() au linker.


ciao...
BruNews, MVP VC++
lundi 20 juin 2005 à 11:32:07 | Re : pb DLL

mamag

C'est à dire qu'il faut que je rajoute le .lib de ma DLL dans Project->Setting et pour le debug et le release? je vais esayer
désolée, mais je suis une vraie débutante!
sinon est-ce que le reste est bon (emploi du pointeur et du GetProcAddress...)

merci beaucoup de m'aider

lundi 20 juin 2005 à 11:48:31 | Re : pb DLL

BruNews

Administrateur CodeS-SourceS
Si tu as le h et le lib au linker, il faudra enlever LoadLibrary et GetProcAddress, c'est liaison statique OU dynamique mais pas les 2.
Opte pour le lib au linker (statique), plus simple à gérer et le système annonce direct si DLL non trouvée au lancement du prog.

ciao...
BruNews, MVP VC++
lundi 20 juin 2005 à 11:58:53 | Re : pb DLL

mamag

d'accord, je vais essyer ...
mais si je n'utilise pas le LoadLibrary et getprocAddress, je dois faire comment pour tester ma DLL, pour l'appeler et récupérer les valeurs de retour.

Merci de consacrer un peu de temps à mon problème car j'en ai vraiment besoin!
lundi 20 juin 2005 à 12:13:58 | Re : pb DLL

BruNews

Administrateur CodeS-SourceS
normal, appelle la fonction déclarée dans le h.

ciao...
BruNews, MVP VC++
lundi 20 juin 2005 à 12:41:28 | Re : pb DLL

mamag

Il ne me reconnait toujours pas ma fonction.

(Pour être sûr de ce que je fais), ma DLL contient une fonction IMU_connect qui retourne deux paramètre et que j'ai déclaré comme suit:
extern "C"__declspec(dllexport) WINAPI IMU_connect(CString* etat, CString* defaut))
{....}
je n'ai pas de h pour la DLL, par contre dans mon pg cpp qui vva appelé ma DLL, je crée un point h ou je mets:
 typdef void (WINAPI *DLL_Function_Imu_connect) (CString *setat, CString* defaut);
dans mon projet cpp dans Project->Settings, je rajoute le chemin pour accéder DLL.lib (mais je ne fais pas #import de ma DLL dans le cpp)

et il me suffit d'appeler ma fonction:
void main{DLL_Function_Imu_connect(etat, defaut)
...}
c'est bien ca? car apparemment ca ne marche pas!

lundi 20 juin 2005 à 12:59:23 | Re : pb DLL

BruNews

Administrateur CodeS-SourceS
Si ta fonction est bien Imu_connect() ET de type WINAPI:

void __stdcall Imu_connect(CString *setat, CString* defaut);
à mettre dans ton h.

pour les CSting et autres bidules à toi de voir, je n'utilise pas, je trouve que ça n'a rien à faire dans une dll.

ciao...
BruNews, MVP VC++

1 2

Cette discussion est classée dans : pb, dll, essais


Répondre à ce message

Sujets en rapport avec ce message

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 importer une classe dans une dll [ par ilimo ] bonjour : j'ai deux programmes : Pa Pb Pa contient la classe Ca Pb contient la classe Cb Pb est une dll pour Pa comment importer la classe Cb dans la PB d'E/S fichier avec une DLL [ par huberdine ] Je cherche a faire une DLL en C, dans la quelle je puisse faire des E/S fichier.Mon probleme est le suivant : la fonction fopen refuse de fonctionner pb de lecture de fichier avec une DLL [ par loic81 ] J'ai fait un programme en C sous vc++6 qui lit un dans un fichier (en trottre) en utilsant la méthode des streams (fonction fread...).Lorsque je le c pb de linkage pendant la compilation sous VC.NET2003 [ par xjacques ] voila le pb que j ai a la compilation:nafxcwd.lib(dllmodul.obj) : error LNK2005: _DllMain@12 already defined in play.objC est lorsque j essaie de defi Pb de ressources [ par victorcoasne ] J'ai fait une dll avec une boîte de dialogue sous Dev mais pour que cela fonctionne je suis obligé de remmettre les ressources ds l'executable alors q pb d'appel de fonctions (DLL en linkage dynamique) [ par 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 Pb Kernel32 [ par UnderFlow ] Pb passage win Xp -> 98. Bonjour, Alors voilà, j'ai développé un petit programme en C que j'ai compilé sous dev-C++ (ds mon environnement XP). Il s'e pb d'execution sur un otre Pc qu celui surlequel l'appli a été developper [ par alanBZH29 ] Salut, voila petit pb qu j capte pas, jai développé une appli en specifiant bien d pas utiliser les mfc library en dll mais en static library qui perm Pb ac une source et Mapi32.dll [ par Gendal67 ] voila, j'ai trouvé une super source sur cppfrance à l'adresse suivante :http://www.cppfrance.com/code.aspx?ID=9872Apres qq modifications pour l'adapte


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 : 6,958 sec (3)

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