begin process at 2012 05 29 08:08:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

Envoyer typedef structure à DLL


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

Envoyer typedef structure à DLL

samedi 11 juin 2005 à 19:41:19 | Envoyer typedef structure à DLL

Zootella

Hello,

Voilà pour faciliter l'envoie de données à une dll, je crée une structure typdef:

typedef struct {
    std::string var;
    std::string var1;
    std::string var2;
} VAR;

Puis un prototype (comme ça que ça s'appelle ?) de la fonction exporté de la dll:

typedef void (*INFO) (VAR* info);
INFO fInfo = (INFO)GetProcAddress(hDll, (LPCSTR)"loadinfo");

Puis je remplis ces variables:

VAR * info;

info->var1.assign("donnée 1");
info->var1.assign("donnée 2");
info->var1.assign("donnée 3");

et j'envois le tout à la dll:

fInfo(info);

La fonction exporté de la DLL:

int __stdcall loadinfo(VAR * info)
{

    MessageBox(0, info->var1.c_str(), info->var2.c_str(), 0);
    return 0;
}

-----------------------------------------------------------

Voilà, ça ne marche pas, je pense que l'erreur se trouve dans l'exe et non dans la dll:
Prototype mal déclaré ? Merci de votre aide en tout cas.

PS: la balise [code] ne semble pas marcher, comment on fait ?








samedi 11 juin 2005 à 19:45:49 | Re : Envoyer typedef structure à DLL

AlexMAN

Membre Club
Tu n'alloue pas de memoire a ta variable, pense a une allocation dynamique (je pense obligatoire), et tu appelles comme ca : fInfo(info); .

+2(p - n)
samedi 11 juin 2005 à 19:55:34 | Re : Envoyer typedef structure à DLL

Zootella

Je n'ai pas compris désolé, allouer var, var1 et var 2 ? comment ?
samedi 11 juin 2005 à 20:01:51 | Re : Envoyer typedef structure à DLL

BruNews

Administrateur CodeS-SourceS
VAR * info;
est un pointeur qui pointe où ???

ciao...
BruNews, MVP VC++
samedi 11 juin 2005 à 20:09:26 | Re : Envoyer typedef structure à DLL

Zootella

typedef struct {
    std::string var;
    std::string var1;
    std::string var2;
} VAR;

non ?
samedi 11 juin 2005 à 20:28:39 | Re : Envoyer typedef structure à DLL

BruNews

Administrateur CodeS-SourceS
ça c'est la définition de structure, ensuite faut une place pour une variable de ce type.

VAR v;
v.membre1 = ....;

ciao...
BruNews, MVP VC++
samedi 11 juin 2005 à 20:53:49 | Re : Envoyer typedef structure à DLL

Zootella

J'ai modifié comme ça:

typedef void (*INFO) (VAR info);

VAR info;

info.membre1 = "test";

on envoie : fInfo(info);

Ok, ça a l'air de marcher, mais si je rajoute un membre2, le programme plante après la deuxiéme messagebox de la fonction exporté:

int __stdcall loadinfo(VAR info)
{
    MessageBox(0, info.membre1.c_str(),  "membre1", 0);
    MessageBox(0, info.membre2.c_str(), "membre2", 0);
   //Plantage
    return 0;
}

samedi 11 juin 2005 à 23:17:20 | Re : Envoyer typedef structure à DLL

AlexMAN

Membre Club
VAR *info;

info = malloc(...);
info->membre1 = ...;
fInfo(info);
free(info);

Dans le cas que tu as cité, l'appel aurait été fInfo(&info);



+2(p - n)
dimanche 12 juin 2005 à 00:57:50 | Re : Envoyer typedef structure à DLL

Zootella

Mon probléme est résolu dans l'exe mais pas dans la dll, je ne vois pas pourquoi ça bug.
Surtout qu'il bug à la toute fin.



Cette discussion est classée dans : dll, var, var1, info, typedef


Répondre à ce message

Sujets en rapport avec ce message

Modbus Info [ par MrNo ] Je recherche des information concernant le modbus et tout particulierement un code source ou une DllPour Aboutir sur une dllJe vous remercie Variables statiques et dll... [ par OrsE ] Salut tout le monde, Voilà, j'ai un programme composé d'un programme principal et d'une dll. Dans mon programme principal: class TMain : public TForm Utilisation d'une Dll [ par sandy27 ] Bonjour,Je vais essayer d'être claire et aussi brève que possible. J'ai réçu d'un fournisseur un code C sous forme de Dll, contenant:- un .lib- un .dl prob tableaux [ par ben3020 ] Bonjour, je suis actuellement en train de faire un challenge et j'aimerai savoir les erreurs de mon code ( je ne veux pas de reponses juste des consei generer un .dll [ par blaise_laporte ] Voila, je suis débutant, mais j'ai besoin de generer un .dll à partir de mon code source. (pour l'utilisation de l'api JNI de java) J'utilise gcc, e Une tite info sur le c++ [ par Fildomen ] SalutJe veux savoir le dernier edi microsoft pour le c++ non managé,ou bien on l'a laisser tomber comme le vb com?? et je veux aussi savoir vos avis s Fichier glut32.dll [ par greg le grand ] Lorsque je télécharge des jeux par exemple en openGL à chaque fois j'ai un message d'erreur indiquant "Le fichier glut32.dll est introuvable" et donc Dll [ par patdimby ] Je voudrais savoir comment écrire une fonction (fonction qui retourne une chaîne)dans une dll et d'appeler cette fonction dans un autre IDE comme VB,d Inclure MFC42D.dll dans mon exe [ par freepouy18 ] Bonjour tlm,J'aimerai inclure la dll MFC42D.dll dans mon executable pour lancer mon exe depuis n'importe quel pc (sans visual).Merci Dll [ par DeAtHCrAsH ] Salut,Je dispose d'une DLL et deux de EXE.Ma DLL permet d'initialiser une connection TCP/IP sur le port  5678, et d'y envoyer des données.Je lance une


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

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

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