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

C++ Discussion :

Importer un string (Lib Dynamique)


Sujet :

C++

  1. #1
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    556
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 556
    Points : 588
    Points
    588
    Par défaut Importer un string (Lib Dynamique)
    bonjour,

    je voudrai importer un string à partir de ma dll mais je ne vois pas trop comment faire.

    voici mon code:

    programme:
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    typedef void (*LibFunc)(int value);
    int main()
    {
    	HMODULE mHandle;
    	mHandle = LoadLibrary(LIB_PATH);
    	if( !mHandle )
    	{
    		cout << "Impossible de trouver le plugin." << endl;
    		return -1;
    	}
     
    	int *value = (int*)GetProcAddress(mHandle, "value");
    	if( value != 0 )
    	{
    		cout << "(Base) Value == " << *value << endl;
    	}
    	else
    	{
    		cout << "(Base) Impossible de récupérer la valeur" << endl;
    		return -1;
    	}
     
    	cout << "(Base) Appel de la fonction sur le plugin." << endl;
     
    	LibFunc lib_func;
    	lib_func = (LibFunc)GetProcAddress(mHandle, "lib_func");
     
    	if(!lib_func)
    	{
    		cout << "(Base) Impossible de récupérer la fonction" << endl;
    		return -1;
    	}
     
    	lib_func(*value);
     
    	string *title;
    	title = (string*)GetProcAddress(mHandle, "title");
    	cout << "(Base) Le titre est : " << *title << endl;
     
    	return 0;
    }
    voici ma lib:
    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
    using namespace std;
     
    extern "C"
    {
     
    	int DL_EXPORT value=10;
     
    	void DL_EXPORT lib_func(int val)
    	{
    		cout << "valeur = " << val << endl;
    	}
     
    	string DL_EXPORT title = "plugintitle";
     
    }
    mon log crash des qu'il arrive a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cout << "(Base) Le titre est : " << *title << endl;
    merci d'avance !

  2. #2
    Membre confirmé
    Inscrit en
    Août 2004
    Messages
    556
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 556
    Points : 588
    Points
    588
    Par défaut
    personne susceptible de m'aider?

  3. #3
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 754
    Points : 10 719
    Points
    10 719
    Billets dans le blog
    3
    Par défaut
    La STL se prête mal à être utilisée dynamiquement dans des dll. Mieux vaut rester avec des types de base.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
       const char *title; 
       title = (const char *)GetProcAddress(mHandle, "title"); 
       cout << "(Base) Le titre est : " << title << endl;

Discussions similaires

  1. création d'une lib dynamique
    Par cmoibal dans le forum C
    Réponses: 4
    Dernier message: 07/02/2008, 19h50
  2. Importer un fichier .lib visual C++ sous Borland ?
    Par Cederic dans le forum Visual C++
    Réponses: 1
    Dernier message: 10/08/2007, 08h16
  3. Importer un fichier .lib visual C++ sous Borland
    Par Cederic dans le forum C++Builder
    Réponses: 1
    Dernier message: 09/08/2007, 17h57
  4. Convertir une lib dynamique à une lib statique
    Par Sceener dans le forum Autres
    Réponses: 2
    Dernier message: 11/07/2007, 21h22
  5. [Link] lib static dans une lib dynamique
    Par TobyKaos dans le forum C++
    Réponses: 3
    Dernier message: 15/05/2007, 11h25

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