IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual C++ Discussion :

[DLL] exporter des m�thodes


Sujet :

Visual C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    196
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 196
    Par d�faut [DLL] exporter des m�thodes
    Bonjour,
    je suis entrain d'essayer de faire une b�te dll qui exporte 2 m�thodes et un ex�cutable qui les exploite. J'ai vu �norm�ment de chose � ce sujet, mais, j'ai beau lire et essayer, mon probl�me ne se resoud pas...

    le code de ma dll est:
    - pour le header:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    DWORD Init();
    DWORD Submit();
    - pour le .cpp:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #include "stdafx.h"
    #include "mock.h"
     
    BOOL APIENTRY DllMain( HMODULE hModule,
                           DWORD  ul_reason_for_call,
                           LPVOID lpReserved
    					 )
    {
    	return TRUE;
    }
     
     DWORD Init(void)
    {
    	return ERROR_SUCCESS;
    }
     
     DWORD Submit(void)
    {
    	return ERROR_SUCCESS;
    }
    et le .def qui va avec:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    LIBRARY	"mock"
    EXPORTS
    Init @1
    Submit @2
    Du cot� de l'executable mon main contient:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    	HMODULE hModule;
    	FARPROC pInit;
    	FARPROC pSubmit;
     
    	wprintf(_T("Loading mock.dll : \t\t\t\t"));
    	if(!(hModule = LoadLibrary(_T("ntdll.dll")))){
    		wprintf(_T("[FAIL] error: %u\n"), GetLastError());
    		FreeLibrary(hModule);
    		return GetLastError();
    	}
    	wprintf(_T("[OK]\n"));
     
    	//charge l'adresse de Init
    	wprintf(_T("Loading Init method : \t\t\t"));
    	if(!(pInit = GetProcAddress(hModule,"Init"))){
    		wprintf(_T("[FAIL] error: %u\n"), GetLastError());
    		FreeLibrary(hModule);
    		return GetLastError();
    	}
    	wprintf(_T("[OK]\n"));
    	FreeLibrary(hModule);
    j'ai beau faire, la librairie se charge, mais je narrive pas � trouver la m�thode init...

    Est ce que quelqu'un voie le probl�me ou peut m'aider???

    Merci!!!

    PS: j'ai essayer de regarder aver __declspec(dllexport) et/ou de faire un typedef comme indiqu� dans la FAQ sans plus de r�sultats...

  2. #2
    Membre confirm�
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    196
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 196
    Par d�faut
    ben je me r�pond tout seul avant d'aller me pendre:
    Pour trouver la m�thode, il faudrait que je charge la bonne DLL....

  3. #3
    Expert �minent
    Avatar de M�dinoc
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 397
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 397
    Par d�faut
    Bonjour,
    J'aimerais rajouter une note: Traditionnellement, les fonctions export�es par une DLL doivent avoir la convention d'appel __stdcall, pour �tre utilisable depuis d'autres langages que C et C++.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parl� avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 6
    Dernier message: 29/03/2008, 19h01
  2. Exporter des widgets depuis une DLL
    Par zebiloute dans le forum wxWidgets
    R�ponses: 5
    Dernier message: 31/07/2006, 08h14
  3. [VS.net2003][IDE] Exporter la liste des m�thodes
    Par arnolem dans le forum Visual Studio
    R�ponses: 2
    Dernier message: 01/06/2006, 16h53
  4. R�ponses: 1
    Dernier message: 09/03/2006, 18h15
  5. R�ponses: 10
    Dernier message: 02/11/2005, 11h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo