begin process at 2010 02 09 19:23:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Assembleur

 > 

Archives

 > 

c, c++ et asm

 > 

[MASM32] DLL export en C


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

[MASM32] DLL export en C

lundi 28 février 2005 à 18:01:52 | [MASM32] DLL export en C

frobinet

Bonjour,

Pour créer un PlugIn, il faut que je transforme une dll en appel de convention stdcall vers un appel de convention en C.

j'ai remplacer <.model flat, stdcall> par <.model large, c> et rajouter le paramètre /Gc sur le compilateur ml.exe. mais j'ai un message d'erreur "entrypoint _LibMain is not a stdcall whith 12 bytes of arguments. de plus il ne reconnait plus lstcrpy....

Merci pour tout renseignement,

frobinet.



mardi 1 mars 2005 à 12:10:10 | Re : [MASM32] DLL export en C

patatalo

Membre Club Administrateur CodeS-SourceS
salut,

tu est sur qu'il y a quelquechose a modifier ?
les appels Masm sont comme en C  a partir du moment ou il y a un param ou une variable locale.
sinon, je pense que tu dois exporter tes symboles de maniere différente aussi:
PUBLIC _LibMain@12

@++
mardi 1 mars 2005 à 16:24:50 | Re : [MASM32] DLL export en C

frobinet

Réponse acceptée !
Bonjour,

Je viens de trouver la solution, il est possible de compiler une dll en mixant les deux conventions d'appels, exemple pour un un PlugIn pour ProgDBV j'ai créer une dll avec la définition : .model flat, stdcall et à chaque déclaration de fonction j'ai rajouter entre proc et le premier paramètre 'C'  mais si j'avais voulu faire l'inverse il aurait fallut rajouter 'STDCALL'

Exemple : On_Send_Dll_ID_Name proc C lpNameDll:DWORD.

Par contre il faut impérativement laisser LibMain en STDCALL ! Du moins dans le cas de ProgDVB mais je crois que c'est pareil pour Winamp.

J'ai remis les mêmes options de compilation que d'habitude et n'est pas eu besoin de retoucher au fichier de définition.
Les fonction de l'API étant au format STDCALL, il n'y a pas beaucoup d'autres choix à moins de ne pas utiliser l'API.

@+







mardi 1 mars 2005 à 17:45:16 | Re : [MASM32] DLL export en C

BruNews

Administrateur CodeS-SourceS
LibMain comme tout callback appelé par Windows est toujours en stdcall, Windows ne dépile jamais les params c'est toujours à l'appelé de le faire, tout comme pour l'API Windows.

ciao...
BruNews, MVP VC++
mercredi 2 mars 2005 à 11:23:17 | Re : [MASM32] DLL export en C

frobinet

Merci pour la précision,

@+


Cette discussion est classée dans : appel, dll, export, masm32, convention


Répondre à ce message

Sujets en rapport avec ce message

segment partagé en masm32 [ par anthraxx ] bonjour a tous,je connais l'assembleur mais je suis pas tres habitué a masm32, et je me demandais ce qu'il faut mettre pour qu'un segment donné de ma debugeueueur en masm32 [ par papiboff ] BJ vous avez dit blizzard comme c'est bizarre j'ai fait un debugeueueur pour ma dll avec MessageBox ; oui oui et mon debug me dit que la dll travaill Appel DLL [ par Arnaud16022 ] BonjourJ'ai quelques soucis pour appeler des fonctions de l'API win32 ( ou n'importe quelle DLL, à vrai dire)Google me fait défaut sur le coup, et asm Generer un manifest pour utiliser la msvcrt.dll avec masm [ par ToutEnMasm ] Bonjour,Pour pouvoir utiliser directx 9 avec masm,j'ai lié la msvcrt.lib a mon projet.Celle ci permet d'utiliser la CRT run time,directx en a besoin p [Nasm - Alink - WIn32] Probleme avec SetWindowsHookEx [ par jean84 ] Salut à tous ;)Je me permet de poser une chtite question car après avoir passé du temps à chercher la réponse à mon problème, bah j'ai toujours pas tr Arguments d une fonction dans une DLL [ par MOUSSAOUIAAZIZ ] Salut;J'aimerais savoir si il est possible de trouver la liste d'arguments variables d'une fonction dans une bibliothèque de liens dynamiques (DL Masm32 - adressage direct - soucis ! [ par ouadji ] Bonjour à tous,mov eax , [11223344h]cette instruction existe ! registre de segment utilisé ... DS ... par défaut !Code machine de cette instruction : DLL Load Comment ? [ par belette321 ] Je me demandais comment je fait pour charger un DLL. Il parrait que sa prend pas plus que quelque ligne alor merci d'avence ... send db to bmp [ par vincent2795 ] bonjour, j' ai un bmp que j' ai mais dans ma source sous forme "DB" je veux le sortir de ma source et le mettre dans un bmp. j' arrive a y sortire du


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

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