Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[DLL windows]comment inclure une dll dans une dll?

7 réponses
Avatar
giova
Bonjour.

Je cherche a faire une dll qui servent d'interface en C pour une autre
dll qui elle est en C++

je suis debutant, j'arrive a faire une dll basique, a l'importer dans du
code sous visual et donc l'utiliser sans probleme en employant la
methode suivante :

#include "madll.h"

propriete du projet, editeur de liens externes, ressource supplementaire
: madll.lib

Mais si je fais ca dans ma nouvelle dll servant d'interface j'obtiens
toute une floppée d'erreurs a la compilation, et la vraiment je bloque.
quelqu'un a t'il une idée du probleme?

Pour resumer j'aurais pu demander comment faire une dll classique qui
inclue la dll gdiplus car c'est elle qui est concernée.

je cherche egalement un tutorial serieux et complet sur comment faire
des dll. J'ai deja consulté msdn, qui offre une presentation avancée des
dll, mais n'explique pas comment faire :/

merci d'avance pour votre aide.

7 réponses

Avatar
Remi Thomas
giova wrote:
Bonjour.

Je cherche a faire une dll qui servent d'interface en C pour une autre
dll qui elle est en C++

je suis debutant, j'arrive a faire une dll basique, a l'importer dans
du code sous visual et donc l'utiliser sans probleme en employant la
methode suivante :

#include "madll.h"

propriete du projet, editeur de liens externes, ressource
supplementaire
madll.lib



Mais si je fais ca dans ma nouvelle dll servant d'interface j'obtiens
toute une floppée d'erreurs a la compilation, et la vraiment je
bloque. quelqu'un a t'il une idée du probleme?

Pour resumer j'aurais pu demander comment faire une dll classique qui
inclue la dll gdiplus car c'est elle qui est concernée.

je cherche egalement un tutorial serieux et complet sur comment faire
des dll. J'ai deja consulté msdn, qui offre une presentation avancée
des dll, mais n'explique pas comment faire :/

merci d'avance pour votre aide.



Bonjour,
Le plus simple est de se laisser guider par le wizard de Visual Studio qui
te fabrique un squelette assez propre de DLL

Rémi

--
Rémi Thomas - MVP Visual Studio .NET
Développeur Windows indépendant
http://www.xtware.com/cv
Avatar
giova
Remi Thomas a écrit :

giova wrote:

Bonjour.

Je cherche a faire une dll qui servent d'interface en C pour une autre
dll qui elle est en C++

je suis debutant, j'arrive a faire une dll basique, a l'importer dans
du code sous visual et donc l'utiliser sans probleme en employant la
methode suivante :

#include "madll.h"

propriete du projet, editeur de liens externes, ressource
supplementaire

madll.lib



Mais si je fais ca dans ma nouvelle dll servant d'interface j'obtiens
toute une floppée d'erreurs a la compilation, et la vraiment je
bloque. quelqu'un a t'il une idée du probleme?

Pour resumer j'aurais pu demander comment faire une dll classique qui
inclue la dll gdiplus car c'est elle qui est concernée.

je cherche egalement un tutorial serieux et complet sur comment faire
des dll. J'ai deja consulté msdn, qui offre une presentation avancée
des dll, mais n'explique pas comment faire :/

merci d'avance pour votre aide.




Bonjour,
Le plus simple est de se laisser guider par le wizard de Visual Studio qui
te fabrique un squelette assez propre de DLL

Rémi



oui c'est ce que je fais, mais ca ne me répond pas a ma question, ou
alorzs on ne parle pas de la meme chose, moi je fais nouveau projet
win32 console, et je clique sur le bouton radio dll, et voila il me fait
le squelette de ma dll.

mais apres comment fait on pour importer une dll dans cette dll? Je
tourne en rond depuis vendredi j'en peux plus :'(
Avatar
Cyrille Szymanski
> alorzs on ne parle pas de la meme chose, moi je fais nouveau projet
win32 console, et je clique sur le bouton radio dll, et voila il me fait
le squelette de ma dll.

mais apres comment fait on pour importer une dll dans cette dll? Je
tourne en rond depuis vendredi j'en peux plus :'(



C'est comme pour un EXE classique.


Personne ne peut te répondre vu le peu d'info concret donné.
Quelques pistes :
* donner les messages d'erreur
* donner un code minimal reproduisant l'erreur
* citer des portions de son code
* insérez votre idée ici

--
cns
Avatar
giova
Cyrille Szymanski a écrit :

alorzs on ne parle pas de la meme chose, moi je fais nouveau projet
win32 console, et je clique sur le bouton radio dll, et voila il me fait
le squelette de ma dll.

mais apres comment fait on pour importer une dll dans cette dll? Je
tourne en rond depuis vendredi j'en peux plus :'(




C'est comme pour un EXE classique.


Personne ne peut te répondre vu le peu d'info concret donné.
Quelques pistes :
* donner les messages d'erreur
* donner un code minimal reproduisant l'erreur
* citer des portions de son code
* insérez votre idée ici



bon, j'ai :
madll.h
madll.cpp
stdafx.cpp
stdafx.h

si dans madll.h je fais un #include "gdiplus.h" et que dans les
propriétés du projet , liens externe supplementaire je met gdiplus.lib
(comme je vais pour un exe normal où ca fonctionne parfaitement bien) et
bien j'obtiens tellement d'erreur de compilation, que le compilateur
s'arrette (re :'( )
Avatar
giova
giova a écrit :

Cyrille Szymanski a écrit :

alorzs on ne parle pas de la meme chose, moi je fais nouveau projet
win32 console, et je clique sur le bouton radio dll, et voila il me
fait le squelette de ma dll.

mais apres comment fait on pour importer une dll dans cette dll? Je
tourne en rond depuis vendredi j'en peux plus :'(





C'est comme pour un EXE classique.


Personne ne peut te répondre vu le peu d'info concret donné.
Quelques pistes :
* donner les messages d'erreur
* donner un code minimal reproduisant l'erreur
* citer des portions de son code
* insérez votre idée ici



bon, j'ai :
madll.h
madll.cpp
stdafx.cpp
stdafx.h

si dans madll.h je fais un #include "gdiplus.h" et que dans les
propriétés du projet , liens externe supplementaire je met gdiplus.lib
(comme je vais pour un exe normal où ca fonctionne parfaitement bien) et
bien j'obtiens tellement d'erreur de compilation, que le compilateur
s'arrette (re :'( )


je prepare un code exemple.
Avatar
Aurélien REGAT-BARREL
> si dans madll.h je fais un #include "gdiplus.h" et que dans les
propriétés du projet , liens externe supplementaire je met gdiplus.lib
(comme je vais pour un exe normal où ca fonctionne parfaitement bien) et
bien j'obtiens tellement d'erreur de compilation, que le compilateur
s'arrette (re :'( )



Tu est bien en C++ ? (extension cpp dans le fichier qui inclut gdiplus).

Je cherche a faire une dll qui servent d'interface en C pour une autre
dll qui elle est en C++



Tu peux écrire en C++ ta dll. Ce qui compte, c'est la manière dont tu t'y
prends pour exporter les symboles. Ecris les fonctions que tu veux rendre
utilisables en C et défini les comme extern "C".
Typiquement :

#ifdef __cplusplus
extern "C" {
#endif

/* tes fonctions */

#ifdef __cplusplus
}
#endif
Avatar
giova
Aurélien REGAT-BARREL wrote:
si dans madll.h je fais un #include "gdiplus.h" et que dans les
propriétés du projet , liens externe supplementaire je met gdiplus.lib
(comme je vais pour un exe normal où ca fonctionne parfaitement bien) et
bien j'obtiens tellement d'erreur de compilation, que le compilateur
s'arrette (re :'( )




Tu est bien en C++ ? (extension cpp dans le fichier qui inclut gdiplus).


Je cherche a faire une dll qui servent d'interface en C pour une autre
dll qui elle est en C++




Tu peux écrire en C++ ta dll. Ce qui compte, c'est la manière dont tu t'y
prends pour exporter les symboles. Ecris les fonctions que tu veux rendre
utilisables en C et défini les comme extern "C".
Typiquement :

#ifdef __cplusplus
extern "C" {
#endif

/* tes fonctions */

#ifdef __cplusplus
}
#endif





merci probleme résolu.