Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Comment utiliser une DLL asm en C++ [ Divers / Débutant(e) ] (Neo_Fr)

jeudi 4 janvier 2007 à 01:14:17 | Comment utiliser une DLL asm en C++

Neo_Fr

Membre Club
Salut tt le monde,
Je suis tres intereser par le dll suivante: http://www.asmfr.com/code.aspx?ID=23840
J'ai besoin de deux fonctions qui sont inclu dans cette dll:
HshStr et Hash2Str
J'ai essayer ca pour l'inclure dans mon projet C++ mais ca me genere des erreurs a la compilation:
 Pour les declarer:
[code] __declspec(dllimport) int __stdcall HashStr(char *StrToHash, char *OutBuff, int BuffSize);
 __declspec(dllimport) void __stdcall ConvertHash2Str(char *InHash, char *OutHash)
int HashStr(char *StrToHash, char *OutBuff, int BuffSize);
void ConvertHash2Str(char *InHash, char *OutHash);[/code]
et j'ai inclu le .obj dans le projet

a la compilation j'ai les erreurs suivantes:
 .drectve `-defaultlib:\masm32\lib\kernel32.lib ' unrecognized 
 .drectve `-defaultlib:\masm32\lib\advapi32.lib ' unrecognized 
 .drectve `-entry:LibMain@12 ' unrecognized
 D:\MD5\Main.o(.text+0x42) In function `Z3md5Pc': 
[Linker error] undefined reference to `_Z7HashStrPcS_i@12'
 [Linker error] undefined reference to `_Z15ConvertHash2StrPcS_@8'
 D:\MD5\Main.o(.text+0x42) ld returned 1 exit status
 D:\MD5\Makefile.win [Build Error]  ["MD5] Error 1

Voila, je vous en supplie aidez moi j'en peu plus la.
merci.

Neo_Fr


jeudi 4 janvier 2007 à 03:15:37 | Re : Comment utiliser une DLL asm en C++

BruNews

Administrateur CodeS-SourceS
pas un obj mais avec le lib qu'il faut linker.
Ensuite tu mets ceci dans un h ou en haut du module qui s'en sert:
void __stdcall ConvertHash2Str(char *InHash, char *OutHash);

Comilos standards MS ou Borland no probleme.

ciao...
BruNews, MVP VC++

jeudi 4 janvier 2007 à 03:41:17 | Re : Comment utiliser une DLL asm en C++

Neo_Fr

Membre Club
Merci sa ma enlever des erreurs mais je ne comprend pas il me reste toujours:
 D:\MD5\Main.o(.text+0x42) In function `Z3md5Pc':
  [Linker error] undefined reference to `_Z7HashStrPcS_i@12'
  [Linker error] undefined reference to `_Z15ConvertHash2StrPcS_@8'

alors que j'ai bien ajouter HashLib.lib dans la partie éditeur de liens
 (je suis sous Dev-C++)

Neo_Fr


jeudi 4 janvier 2007 à 13:01:01 | Re : Comment utiliser une DLL asm en C++

Neo_Fr

Membre Club
J'ai essayer de recompiler le projet avec VC++ mais j'ai tjrs trois erreurs:
Main.obj : error LNK2001: unresolved external symbol "void __stdcall ConvertHash2Str(char *,char *)" (?ConvertHash2Str@@YGXPAD0@Z)

Main.obj : error LNK2001: unresolved external symbol "int __stdcall HashStr(char *,char *,int)" (?HashStr@@YGHPAD0H@Z)

j'ai bien ajouter le .lib...

Neo_Fr


jeudi 4 janvier 2007 à 13:31:39 | Re : Comment utiliser une DLL asm en C++

BruNews

Administrateur CodeS-SourceS
Pourquoi tiens-tu à réutiliser cette dll ?
Tu as tout le code alors remets le dans un fichier C (facile c'est du pseudo asm), ainsi no probleme et tu éviteras de te trimballer une dll pour si peu.

ciao...
BruNews, MVP VC++

jeudi 4 janvier 2007 à 14:40:35 | Re : Comment utiliser une DLL asm en C++

Neo_Fr

Membre Club
Tu veux dire que je peux directement inclure de l'asm dand du C tout en gardant la
vitesse de l'asm??
si oui comment.

Neo_Fr


jeudi 4 janvier 2007 à 14:56:56 | Re : Comment utiliser une DLL asm en C++

BruNews

Administrateur CodeS-SourceS
De l'asm dans un module C, bien evidemment:
http://www.cppfrance.com/code.aspx?ID=36938

Par contre faut (encore....) remettre les idées en place:
Un compilo C produit de l'asm en partant du listing C, c'est cela qui sera assemblé et linké alors asm direct à la mano ou par le compilo c'est idem.
Il est clair que par contre ce doit être du vrai asm, pas le sabir qu'autorise MASM (comme dans la source dll) et tant mieux car le compilo produira nettement plus efficace comme code.

ciao...
BruNews, MVP VC++

jeudi 4 janvier 2007 à 18:38:28 | Re : Comment utiliser une DLL asm en C++

Neo_Fr

Membre Club
Je débute en C et je ne connait rien en asm alors si il fo modifier le source de la dll
je crois que ca va pas etre possible a moins que quelqu'un m'explique ce qu'il faut faire c'est pour sa que je suis tres interesser de pouvoir utiliser directement la dll.

Neo_Fr


samedi 6 janvier 2007 à 14:02:52 | Re : Comment utiliser une DLL asm en C++

Neo_Fr

Membre Club
Réponse acceptée !
Finalement j'ai trouvé un solution:
On ajoute le fichier asm dans le projet et on rajouter ca en haut de main.cpp:

#ifdef __cplusplus
extern "C" {
#endif
int __stdcall HashStr(char *StrToHash, char *OutBuff, int BuffSize);
void __stdcall ConvertHash2Str(char *InHash, char *OutHash);
#ifdef __cplusplus
}
#endif

Voila ca marche nickel...

Neo_Fr




Cette discussion est classé dans : int, dll, char, md5, lib


Répondre à ce message

Sujets en rapport avec ce message

erreur compilation [ par greg4 ] je voudrai compiler--------------------------------------.model tiny.dataHelloMessage db 13,10,'Hello World !',13,10,'$'.codeorg 100hstart: mov ax,@d c/c++ et 19h [ par Xs ] salut !je travaille sous VC++ et j'aimerais utiliser une interuption processeur : 19hmon code actuel marche mais au lieu d'eteindre le PC, il le fait Probleme de dll! (arguments...) [ par BlackWizzard ] salut les pro!voila, G une fonction contenu dans une dll mais cette fonction, je ne sait pas comment lui ajouter des arguments...voici un extrait du c [URGENT] Passer des arguments a une DLL [ par BlackWizzard ] Bonjours, je voudrai creer un dll en asm (ce qui est fait) mais je n'arrive pas a passer des arguments a la seul fonction de cette dll.imaginons le co INT 5C [ par Ariane ] Je cherche toute info sur l'int 5C . NETBIOSLes infos trouvées sur le net etant insuffisantes.Merci d'avance. Fonction DLL avec arguments [ par Arnotic ] Bonjour, J'ai une DLL avec une fonction qui prend 2 arguments (en C (char*, int). Lorsque je la charge j'ai aucun problème mais lors de l'appel à probleme de link [nasm + alink] [ par EEkaMouse ] Salut!j'ai un problème au niveau de l'éditeur de lien.j'ai un programme en *.obj dont la source est la suivante :%include "..\inc\win32n.inc"<br tout sans int [ par TRAX44 ] salut, je chercherai les adresse de ports de différente périphérique et autre tel que le clavier, la souris, l'écran et tout sa (dans le but de faire loader problème de code [ par TRAX44 ] salut tout le monde !!g essayer de faire un loader (petit prog qui charge un autre prog) mais c un desartre je comprend pas très bien ce qui ne marche Création de DLL [ par HollowSpecter128 ] Salut à tous!Je voudrais savoir si qq1 pourrais montrer comment on fè pour créer 1 DLL entièrement en assembleur sous NASM ou FASM.Quoique pour FASM j


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, 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
Temps d'éxécution de la page : 0,452 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.