Point d'entrée d'une dll

sebastienbro Messages postés 246 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 5 août 2004 - 11 mai 2003 à 16:43
sebastienbro Messages postés 246 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 5 août 2004 - 13 mai 2003 à 13:42
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

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
11 mai 2003 à 16:48
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...
0
sebastienbro Messages postés 246 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 5 août 2004 2
11 mai 2003 à 17:32
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] -- */
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
11 mai 2003 à 17:39
faut voir tes fonctions de dll ET types de params SI sont en rapport avec declaration dans VB.
BruNews, ciao...
0
sebastienbro Messages postés 246 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 5 août 2004 2
11 mai 2003 à 17:57
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] -- */
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
11 mai 2003 à 18:04
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...
0
cs_payen Messages postés 252 Date d'inscription mercredi 25 octobre 2000 Statut Membre Dernière intervention 1 mai 2005
11 mai 2003 à 19:41
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] -- */
> > > > >
> > > >
> > >
> >
>
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
11 mai 2003 à 19:56
A l'URL indiquee la derniere ligne est erronee.
WPARAM est defini sur 4 octets donc Long en VB en NON Integer.
BruNews, ciao...
0
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
12 mai 2003 à 01:01
C'est DllMain la fonction qui est appelée dans ce cas et pas et pas DllEntryPoint

Core Breaker :)
0
sebastienbro Messages postés 246 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 5 août 2004 2
13 mai 2003 à 13:42
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]] -- */
0
Rejoignez-nous