begin process at 2010 02 10 05:34:13
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

DLL sous C++ builder 6


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

DLL sous C++ builder 6

lundi 4 août 2003 à 15:10:06 | DLL sous C++ builder 6

ivdz

Bonjour,
Voici une partie du .h de mon exécutable que je dois transformer en DLL (sous C++ builder 6) :

#ifndef MODBUSTCPIP_H
#define MODBUSTCPIP_H

class CModbusTCPIP
{
public :
CModbusTCPIP(void);
~CModbusTCPIP(void);

bool Ouverture(const char FAR *ad);
void Fermeture();

bool ModbusLecturebit(unsigned short num, unsigned short adresse, int nb);
bool ModbusLecturemot(unsigned short num, unsigned short adresse, int nb);
private :
void Lecturebit(unsigned short num, unsigned short adresse, int nb, BYTE *trame);
void Lecturemot(unsigned short num, unsigned short adresse, int nb, BYTE *trame);
bool InitWinsock2();
bool CreationSocket();
private :
int sock;
const char FAR* adresse;
};
#endif

Je dois donc transformer mon programme en DLL. Si quelqu’un pouvez m’expliquer :
- les étapes à suivre pour réaliser ma DLL sous c++ builder 6
- comment appelle cette dll d’un nouveau projet
Je sais qu’il existe une aide : http://lfe.developpez.com/DLL/ mais je n’ai pas tout compris. J’ai essayé de faire une DLL en suivant ses exemples mais je n’y suis pas arrivée.

Quelqu’un pourrait me dire la différence entre une DLL statique et une DLL dynamique ? Pourquoi faire l’une plutôt que l’autre ? Ma DLL sera composée d’une classe, dois-je faire une DLL statique ou dynamique ?

Merci Isabelle
mardi 5 août 2003 à 11:05:04 | Re : DLL sous C++ builder 6

fredcl

Cherche dans l'aide de C++ Builder 6, c'est expliqué.

une DLL (Dynamic Link Library) est comme son nom l'indique dynamique. Cela donneras un fichier du type nom_de_fichier.DLL
Les bibliothèque statique sont de la forme nom_de_fichier.LIB
une fois que ta DLL est créée. Tu as deux solutions pour lié ton exécutable à ta DLL.
1 : passer par les fonctions de l'API Windows LoadLibrary et GetProcAddress.

2 : utiliser l'utilitaire IMPLIB sur ta DLL, ce qui te créera un tout petit fichiers nom_de_ta_dll.lib. Fichier que tu liera avec ton executable. Ce fichier .LIB évite d'avoir à utiliser les API windows, mais t'oblige à avoir obligatoirement la dll accessible par ton exe.



-------------------------------
Réponse au message :
-------------------------------

> Bonjour,
> Voici une partie du .h de mon exécutable que je dois transformer en DLL (sous C++ builder 6) :
>

> #ifndef MODBUSTCPIP_H
> #define MODBUSTCPIP_H
>
> class CModbusTCPIP
> {
> public :
> CModbusTCPIP(void);
> ~CModbusTCPIP(void);
>
> bool Ouverture(const char FAR *ad);
> void Fermeture();
>
> bool ModbusLecturebit(unsigned short num, unsigned short adresse, int nb);
> bool ModbusLecturemot(unsigned short num, unsigned short adresse, int nb);
> private :
> void Lecturebit(unsigned short num, unsigned short adresse, int nb, BYTE *trame);
> void Lecturemot(unsigned short num, unsigned short adresse, int nb, BYTE *trame);
> bool InitWinsock2();
> bool CreationSocket();
> private :
> int sock;
> const char FAR* adresse;
> };
> #endif
>

> Je dois donc transformer mon programme en DLL. Si quelqu'un pouvez m'expliquer :
> - les étapes à suivre pour réaliser ma DLL sous c++ builder 6
> - comment appelle cette dll d'un nouveau projet
> Je sais qu'il existe une aide : http://lfe.developpez.com/DLL/ mais je n'ai pas tout compris. J'ai essayé de faire une DLL en suivant ses exemples mais je n'y suis pas arrivée.
>
> Quelqu'un pourrait me dire la différence entre une DLL statique et une DLL dynamique ? Pourquoi faire l'une plutôt que l'autre ? Ma DLL sera composée d'une classe, dois-je faire une DLL statique ou dynamique ?
>
> Merci Isabelle
mardi 5 août 2003 à 14:09:23 | Re : DLL sous C++ builder 6

ivdz

J'ai déjà regardé et j'ai essayé de créer une DLL (constituée d'une classe) en m'aidant de l'aide C++ builder 6 mais je n'y suis pas arrivée. C'est pour cela que j'ai posté ce message.

Si quelqu'un avait un exemple qui fonctionne de DLL constituée d'une classe, cela m'aiderait bcp.

Merci
Isabelle

-------------------------------
Réponse au message :
-------------------------------

> Cherche dans l'aide de C++ Builder 6, c'est expliqué.
>
> une DLL (Dynamic Link Library) est comme son nom l'indique dynamique. Cela donneras un fichier du type nom_de_fichier.DLL
> Les bibliothèque statique sont de la forme nom_de_fichier.LIB
> une fois que ta DLL est créée. Tu as deux solutions pour lié ton exécutable à ta DLL.
> 1 : passer par les fonctions de l'API Windows LoadLibrary et GetProcAddress.
>
> 2 : utiliser l'utilitaire IMPLIB sur ta DLL, ce qui te créera un tout petit fichiers nom_de_ta_dll.lib. Fichier que tu liera avec ton executable. Ce fichier .LIB évite d'avoir à utiliser les API windows, mais t'oblige à avoir obligatoirement la dll accessible par ton exe.
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Bonjour,
> > Voici une partie du .h de mon exécutable que je dois transformer en DLL (sous C++ builder 6) :
> >

> > #ifndef MODBUSTCPIP_H
> > #define MODBUSTCPIP_H
> >
> > class CModbusTCPIP
> > {
> > public :
> > CModbusTCPIP(void);
> > ~CModbusTCPIP(void);
> >
> > bool Ouverture(const char FAR *ad);
> > void Fermeture();
> >
> > bool ModbusLecturebit(unsigned short num, unsigned short adresse, int nb);
> > bool ModbusLecturemot(unsigned short num, unsigned short adresse, int nb);
> > private :
> > void Lecturebit(unsigned short num, unsigned short adresse, int nb, BYTE *trame);
> > void Lecturemot(unsigned short num, unsigned short adresse, int nb, BYTE *trame);
> > bool InitWinsock2();
> > bool CreationSocket();
> > private :
> > int sock;
> > const char FAR* adresse;
> > };
> > #endif
> >

> > Je dois donc transformer mon programme en DLL. Si quelqu'un pouvez m'expliquer :
> > - les étapes à suivre pour réaliser ma DLL sous c++ builder 6
> > - comment appelle cette dll d'un nouveau projet
> > Je sais qu'il existe une aide : http://lfe.developpez.com/DLL/ mais je n'ai pas tout compris. J'ai essayé de faire une DLL en suivant ses exemples mais je n'y suis pas arrivée.
> >
> > Quelqu'un pourrait me dire la différence entre une DLL statique et une DLL dynamique ? Pourquoi faire l'une plutôt que l'autre ? Ma DLL sera composée d'une classe, dois-je faire une DLL statique ou dynamique ?
> >
> > Merci Isabelle
>
mardi 5 août 2003 à 15:41:51 | Re : DLL sous C++ builder 6

fredcl

dans ton fichier .h

ajoute ceci

#ifdef __DLL__
#define IMPORT_EXPORT __declspec (dllexport)
#else
#define IMPORT_EXPORT __declspec (dllimport)
#endif

IMPORT_EXPORT class CModbusTCPIP
{

... ici le reste de la définition de ta classe


pour utiliser cette dll dans un projet C++ builder, ne pas oublier d'ajouter au projet le fichier .lib générer par IMPLIB a la fin de la compilation de ta DLL

-------------------------------
Réponse au message :
-------------------------------

> J'ai déjà regardé et j'ai essayé de créer une DLL (constituée d'une classe) en m'aidant de l'aide C++ builder 6 mais je n'y suis pas arrivée. C'est pour cela que j'ai posté ce message.
>
> Si quelqu'un avait un exemple qui fonctionne de DLL constituée d'une classe, cela m'aiderait bcp.
>
> Merci
> Isabelle
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Cherche dans l'aide de C++ Builder 6, c'est expliqué.
> >
> > une DLL (Dynamic Link Library) est comme son nom l'indique dynamique. Cela donneras un fichier du type nom_de_fichier.DLL
> > Les bibliothèque statique sont de la forme nom_de_fichier.LIB
> > une fois que ta DLL est créée. Tu as deux solutions pour lié ton exécutable à ta DLL.
> > 1 : passer par les fonctions de l'API Windows LoadLibrary et GetProcAddress.
> >
> > 2 : utiliser l'utilitaire IMPLIB sur ta DLL, ce qui te créera un tout petit fichiers nom_de_ta_dll.lib. Fichier que tu liera avec ton executable. Ce fichier .LIB évite d'avoir à utiliser les API windows, mais t'oblige à avoir obligatoirement la dll accessible par ton exe.
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Bonjour,
> > > Voici une partie du .h de mon exécutable que je dois transformer en DLL (sous C++ builder 6) :
> > >

> > > #ifndef MODBUSTCPIP_H
> > > #define MODBUSTCPIP_H
> > >
> > > class CModbusTCPIP
> > > {
> > > public :
> > > CModbusTCPIP(void);
> > > ~CModbusTCPIP(void);
> > >
> > > bool Ouverture(const char FAR *ad);
> > > void Fermeture();
> > >
> > > bool ModbusLecturebit(unsigned short num, unsigned short adresse, int nb);
> > > bool ModbusLecturemot(unsigned short num, unsigned short adresse, int nb);
> > > private :
> > > void Lecturebit(unsigned short num, unsigned short adresse, int nb, BYTE *trame);
> > > void Lecturemot(unsigned short num, unsigned short adresse, int nb, BYTE *trame);
> > > bool InitWinsock2();
> > > bool CreationSocket();
> > > private :
> > > int sock;
> > > const char FAR* adresse;
> > > };
> > > #endif
> > >

> > > Je dois donc transformer mon programme en DLL. Si quelqu'un pouvez m'expliquer :
> > > - les étapes à suivre pour réaliser ma DLL sous c++ builder 6
> > > - comment appelle cette dll d'un nouveau projet
> > > Je sais qu'il existe une aide : http://lfe.developpez.com/DLL/ mais je n'ai pas tout compris. J'ai essayé de faire une DLL en suivant ses exemples mais je n'y suis pas arrivée.
> > >
> > > Quelqu'un pourrait me dire la différence entre une DLL statique et une DLL dynamique ? Pourquoi faire l'une plutôt que l'autre ? Ma DLL sera composée d'une classe, dois-je faire une DLL statique ou dynamique ?
> > >
> > > Merci Isabelle
> >
>
mardi 5 août 2003 à 15:49:35 | Re : DLL sous C++ builder 6

ivdz

Merci bcp. C'est justement ce que je viens de faire sauf que ce n'est pas IMPORT_EXPORT class CModbusTCPIP mais class IMPORT_EXPORT CModbusTCPIP.

A+
Isabelle
-------------------------------
Réponse au message :
-------------------------------

> dans ton fichier .h
>
> ajoute ceci
>
> #ifdef __DLL__
> #define IMPORT_EXPORT __declspec (dllexport)
> #else
> #define IMPORT_EXPORT __declspec (dllimport)
> #endif
>
> IMPORT_EXPORT class CModbusTCPIP
> {
>
> ... ici le reste de la définition de ta classe
>
>
> pour utiliser cette dll dans un projet C++ builder, ne pas oublier d'ajouter au projet le fichier .lib générer par IMPLIB a la fin de la compilation de ta DLL
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > J'ai déjà regardé et j'ai essayé de créer une DLL (constituée d'une classe) en m'aidant de l'aide C++ builder 6 mais je n'y suis pas arrivée. C'est pour cela que j'ai posté ce message.
> >
> > Si quelqu'un avait un exemple qui fonctionne de DLL constituée d'une classe, cela m'aiderait bcp.
> >
> > Merci
> > Isabelle
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Cherche dans l'aide de C++ Builder 6, c'est expliqué.
> > >
> > > une DLL (Dynamic Link Library) est comme son nom l'indique dynamique. Cela donneras un fichier du type nom_de_fichier.DLL
> > > Les bibliothèque statique sont de la forme nom_de_fichier.LIB
> > > une fois que ta DLL est créée. Tu as deux solutions pour lié ton exécutable à ta DLL.
> > > 1 : passer par les fonctions de l'API Windows LoadLibrary et GetProcAddress.
> > >
> > > 2 : utiliser l'utilitaire IMPLIB sur ta DLL, ce qui te créera un tout petit fichiers nom_de_ta_dll.lib. Fichier que tu liera avec ton executable. Ce fichier .LIB évite d'avoir à utiliser les API windows, mais t'oblige à avoir obligatoirement la dll accessible par ton exe.
> > >
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > Bonjour,
> > > > Voici une partie du .h de mon exécutable que je dois transformer en DLL (sous C++ builder 6) :
> > > >

> > > > #ifndef MODBUSTCPIP_H
> > > > #define MODBUSTCPIP_H
> > > >
> > > > class CModbusTCPIP
> > > > {
> > > > public :
> > > > CModbusTCPIP(void);
> > > > ~CModbusTCPIP(void);
> > > >
> > > > bool Ouverture(const char FAR *ad);
> > > > void Fermeture();
> > > >
> > > > bool ModbusLecturebit(unsigned short num, unsigned short adresse, int nb);
> > > > bool ModbusLecturemot(unsigned short num, unsigned short adresse, int nb);
> > > > private :
> > > > void Lecturebit(unsigned short num, unsigned short adresse, int nb, BYTE *trame);
> > > > void Lecturemot(unsigned short num, unsigned short adresse, int nb, BYTE *trame);
> > > > bool InitWinsock2();
> > > > bool CreationSocket();
> > > > private :
> > > > int sock;
> > > > const char FAR* adresse;
> > > > };
> > > > #endif
> > > >

> > > > Je dois donc transformer mon programme en DLL. Si quelqu'un pouvez m'expliquer :
> > > > - les étapes à suivre pour réaliser ma DLL sous c++ builder 6
> > > > - comment appelle cette dll d'un nouveau projet
> > > > Je sais qu'il existe une aide : http://lfe.developpez.com/DLL/ mais je n'ai pas tout compris. J'ai essayé de faire une DLL en suivant ses exemples mais je n'y suis pas arrivée.
> > > >
> > > > Quelqu'un pourrait me dire la différence entre une DLL statique et une DLL dynamique ? Pourquoi faire l'une plutôt que l'autre ? Ma DLL sera composée d'une classe, dois-je faire une DLL statique ou dynamique ?
> > > >
> > > > Merci Isabelle
> > >
> >
>


Cette discussion est classée dans : dll, void, bool, short, unsigned


Répondre à ce message

Sujets en rapport avec ce message

pb avec conio je cher cherche l'erreur( j'ai merde sur le mess precedent) [ par kin ] portpia.cpp#include"PortPiaPc.h"void main(){ PortPiaPc inst; inst(0x320,0x0f);}PortPiaPc.cpp#include "PortPiaPc.h"#include "conio.h"PortPiaPc::PortPia Fch. Header :: CONIO.H [ par TontOnDuWeb ] Pour ce que ca interesse (avec vc++ les fonctions suivantes e sont pas incluse (du moins je crois...))>>#if !defined(__CONIO_H)#define __CONIO_H#if !d Pointeur sur fonction envoyé par dll [ par MoDDiB ] Voila ce que j'ai fais mais ca ne marche pas :Dll :#include BOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved){ retu Sniffing - raw socket [ par krum ] J'ai essayé de coder un programme capable de me donner la description de l'en tete IP et TCP des packets que je reçois d'une certaine IP,mais lorsque PB de compilation [ par Steph3457 ] Steph3457j'ai un petit pb lors de la compilation de mon programme mais je c vraimen pa commen le resoudresi vous pouviez m'aidé SVP!!!!!le message d'e Pb CreateThreadddd !!!!!!!!!!! [ par neub ] Salut à tous, j'ecris un module de visionnement d'image etje souhaiterai pouvoir stopper ma fonction OnPlay au moment voulu mais j'ai un pb a la creat Conversion unsigned short ---> char * [ par nemmezis ] Salut tout le monde,Ben tout est dit dans le titre; j'ai en fait besoin de convertir un unsigned short en char* afin de pouvoir le concaténer dans un thread et activeX avec MFC [ par lamalice83 ] bonjour,j'essaye de créer un thread à l'intérieur d'une classe, mais je n'arrive pas à l'associer avec sa fonction de routine:Dans le CLASSCtl.h :afx_ pragma pack(push,2) [ par gagah1 ] salut à tous!Quelqu'un pourrait m'expliquer ça sert à quoi le macro:#pragma pack(push,2) et #pragma pack(pop) parceque quand je déclare une structure namespace [ par magic_Nono ] j'ai modifié mes classes n'étant jamais instanciées en namespaceet j'ai quelques intérogations :1>dans le header, pkoi le static ne passe pas ex : st


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,998 sec (4)

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