Point d'entrée d'une dll

Signaler
Messages postés
246
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
5 août 2004
-
Messages postés
246
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
5 août 2004
-
J'ai remarqué que dans ma dll, ma fonction DllEntryPoint n'était pas appelé lorsque j'éxécutait une application ce servant de cette dll. Je sui donc allé ds Settings (sous vc++), et ds Link, g mi, ds EntryPoint, le nom de ma fonction (DllEntryPoint). Mais maintenant, g une erreur de compilation :

LIBCMTD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/krnlwinux.dll : fatal error LNK1120: 1 unresolved externals

et je sait pas du tt ce que c. si kkun pouvait me dire comment faire, pq la, ca ne marche plus du tt :-\

Bye

\* -- Seb [[mailto:sebastienbro@aol.com Mail]] [Web] -- */

9 réponses

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
Exemple de proto pour entry point.
Doit retourner 1, enleve le reste si pas utile.

HINSTANCE m_hInst;
int WINAPI DllMain(HINSTANCE hInst, DWORD dwReason, PVOID pReserved)
{ if(dwReason DLL_PROCESS_ATTACH) m_hInst hInst;
return 1;
}

BruNews, ciao...
Messages postés
246
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
5 août 2004
1
Merci, c bon, ca marche

Mais j'ai un autre problème. Ma dll marche très bien quand je l'utilise avec Delphi, mais dès que j'utilise Vb, ca ne marche plus. Il transmet pas les bon arguments a la fonctions. G bien déclarer les fonction en __stdcall, vb appelle bien la fonction, mais les arguments sont incorrectes.

Aidez moi svp

\* -- Seb [[mailto:sebastienbro@aol.com Mail]] [Web] -- */
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
faut voir tes fonctions de dll ET types de params SI sont en rapport avec declaration dans VB.
BruNews, ciao...
Messages postés
246
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
5 août 2004
1
Ben en c++ g ceci :

la fonction :
BOOL __stdcall AboutBox(lAboutBox Opt, HWND Handle)

le type :
typedef struct {

LPCTSTR Titre;
LPCTSTR CopyRight;
LPCTSTR Description;
LPCTSTR Version;
LPCTSTR App;
LPCTSTR Btn;
HICON Icone;

} lAboutBox, *LAboutBox;

et en vb, ceci :

la fonction :
Declare Function AboutBox Lib "krnlwinux.dll" (ByRef Opt As lAboutBox, ByVal Handle As Long) As Boolean

le type :
Public Type lAboutBox

Titre As String
CopyRight As String
Description As String
Version As String
App As String
Btn As String
Icone As Long

End Type

Je sais pas ou ca ne va pas !

\* -- Seb [[mailto:sebastienbro@aol.com Mail]] [Web] -- */
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
Je pense que ne correspond pas.
Essaie avec
Titre As String * 52 par exemple
Si est: Titre As String alors tu dois recuperer un *BSTR.
BruNews, ciao...
Messages postés
252
Date d'inscription
mercredi 25 octobre 2000
Statut
Membre
Dernière intervention
1 mai 2005

pour reprendre l'idee de BruNews sur les types C++ / VB, va voir par la, tu trouveras un tableau des correpondances entre les 2 langages (si Vb est un langage ...) : [mailto:sebastienbro@aol.com Mail]] [Web] -- */
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > faut voir tes fonctions de dll ET types de params SI sont en rapport avec declaration dans VB.
> > > BruNews, ciao...
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > Merci, c bon, ca marche
> > > >
> > > > Mais j'ai un autre problème. Ma dll marche très bien quand je l'utilise avec Delphi, mais dès que j'utilise Vb, ca ne marche plus. Il transmet pas les bon arguments a la fonctions. G bien déclarer les fonction en __stdcall, vb appelle bien la fonction, mais les arguments sont incorrectes.
> > > >
> > > > Aidez moi svp
> > > >
> > > > \* -- Seb [[mailto:sebastienbro@aol.com Mail]] [Web] -- */
> > > >
> > > >
> > > > -------------------------------
> > > > Réponse au message :
> > > > -------------------------------
> > > >
> > > > > Exemple de proto pour entry point.
> > > > > Doit retourner 1, enleve le reste si pas utile.
> > > > >
> > > > > HINSTANCE m_hInst;
> > > > > int WINAPI DllMain(HINSTANCE hInst, DWORD dwReason, PVOID pReserved)
> > > > > {> > > > > if(dwReason DLL_PROCESS_ATTACH) m_hInst hInst;
> > > > > return 1;
> > > > > }
> > > > >
> > > > > BruNews, ciao...
> > > > >
> > > > >
> > > > > -------------------------------
> > > > > Réponse au message :
> > > > > -------------------------------
> > > > >
> > > > > > J'ai remarqué que dans ma dll, ma fonction DllEntryPoint n'était pas appelé lorsque j'éxécutait une application ce servant de cette dll. Je sui donc allé ds Settings (sous vc++), et ds Link, g mi, ds EntryPoint, le nom de ma fonction (DllEntryPoint). Mais maintenant, g une erreur de compilation :
> > > > > >
> > > > > > LIBCMTD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
> > > > > > Debug/krnlwinux.dll : fatal error LNK1120: 1 unresolved externals
> > > > > >
> > > > > > et je sait pas du tt ce que c. si kkun pouvait me dire comment faire, pq la, ca ne marche plus du tt :-\
> > > > > >
> > > > > > Bye
> > > > > >
> > > > > > \* -- Seb [[mailto:sebastienbro@aol.com Mail]] [Web] -- */
> > > > >
> > > >
> > >
> >
>
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
A l'URL indiquee la derniere ligne est erronee.
WPARAM est defini sur 4 octets donc Long en VB en NON Integer.
BruNews, ciao...
Messages postés
540
Date d'inscription
dimanche 23 mars 2003
Statut
Membre
Dernière intervention
5 octobre 2007
1
C'est DllMain la fonction qui est appelée dans ce cas et pas et pas DllEntryPoint

Core Breaker :)
Messages postés
246
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
5 août 2004
1
J'ai essayé en mettan char Titre[250] en c++, et Titre As String * 250 en vb, et la, g plus d'erreur du programme, mais le texte retourné, c'est pas encore ca, g dé caractère en plus, des espaces, dé sot de ligne un peu n'importe ou !

\* -- Seb [["mailto:sebastienbro@aol.com" Mail]] [["http://sebastienbro.free.fr" Web]] -- */