begin process at 2012 05 25 10:50:17
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Assembleur

 > 

Divers

 > 

Débutant(e)

 > 

Utilisation d'une Librairie perso avec MASM32


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

Utilisation d'une Librairie perso avec MASM32

vendredi 9 mars 2007 à 19:41:54 | Utilisation d'une Librairie perso avec MASM32

Micro_and_Macro

Bonsoir à  tous,
j'ai créé une  librairie à partir d'une DLL BMP2JPG.dll(de vbfrance) à l'aide de cette url http://win32assembly.online.fr/importlib.html,
selon la première methode permetant d'executer les fonctions avec "Call".

A la compilation, j'obtient cette erreur (error A2006: undefined symbol : BMP2JPGpourVBFrance)
BMP2JPG etant l'une des fonctions de la lib.

Je précise  que la lib est incluse dans le  même répertoire que les  autres libs comme ceci :  includelib c:\masm32\lib\BMP2JPG.lib

Quelqu'un a-til déjà rencontré ce problème ?
Faut-il un fichier .inc allant de paire pour la déclaration des fonctions? (j'en doute)


Voilà merci d'avance(l'enjeu est vraiment important pour moi :p)

PS:  Enfin surtout Brunews





 
samedi 10 mars 2007 à 01:30:09 | Re : Utilisation d'une Librairie perso avec MASM32

BruNews

Administrateur CodeS-SourceS
Si tu mets l'import lib et dessous le proto de la fonction en haut du fichier asm, aucune raison que le call soit refusé.

ciao...
BruNews, MVP VC++
samedi 10 mars 2007 à 10:53:58 | Re : Utilisation d'une Librairie perso avec MASM32

Micro_and_Macro

BMP2JPGpourVBFrance PROTO :DWORD,:DWORD,:DWORD
error LNK2001: unresolved external symbol _BMP2JPGpourVBFrance@12


Le problème étant que la fonction prend 3 paramètres en entrée qui n'apparaissent pas dans le.def dont voici un extrait ?SetFrame@CxImage@@QAEXJ@Z
?SetFrameDelay@CxImage@@QAEXK@Z
?SetJpegQuality@CxImage@@QAEXE@Z
?SetOffset@CxImage@@QAEXJJ@Z
?SetProgress@CxImage@@QAEXJ@Z
?SetTransColor@CxImage@@QAEXUtagRGBQUAD@@@Z
?SetTransIndex@CxImage@@QAEXJ@Z
?Size@CxIOFile@@UAEJXZ
?Stretch@CxImage@@QAEJPAUHDC__@@ABUtagRECT@@@Z
?Tell@CxIOFile@@UAEJXZ
 ?Write@CxIOFile@@UAEIPBXII@Z
BMP2BMPAvecRedimpourVBFrance
BMP2GIFAvecRedimpourVBFrance
 BMP2GIFpourVBFrance
 BMP2JPGAvecRedimpourVBFrance
 BMP2JPGpourVBFrance

Voilà,je vais essayer avec une autre dll pour voir si le problème persiste

 
samedi 10 mars 2007 à 11:12:17 | Re : Utilisation d'une Librairie perso avec MASM32

BruNews

Administrateur CodeS-SourceS

FICHIER ASM:
.586
.model flat, stdcall
option casemap :none
option prologue:none
option epilogue:none

;; LES include ICI

.code

LibMain PROC hInstDLL:DWORD, reason:DWORD, unused:DWORD
   mov      eax, 1
   ret      12
LibMain ENDP

BMP2JPGpourVBFrance PROC  param1:DWORD,param2:DWORD,param2:DWORD
  ; TON CODE ICI
  ret    12
BMP2JPGpourVBFrance ENDP
-------------------------
FICHIER DEF:

LIBRARY   NomSeTaDll
EXPORTS
  BMP2JPGpourVBFrance  @1
  ; AUTRES NOMS EXPORTES A SUIVRE


ciao...
BruNews, MVP VC++

samedi 10 mars 2007 à 13:01:15 | Re : Utilisation d'une Librairie perso avec MASM32

Micro_and_Macro

Ah? et heu.... que mettre dans la procédure si ce n'est :

BMP2JPGpourVBFrance PROC  param1:DWORD,param2:DWORD,param2:DWORD

pushparam3
push param2
push param1
Call BMP2JPGpourVBFrance
ret    12
BMP2JPGpourVBFrance ENDP

.
Et a l'appel se pourrait être:

push 100
push path2
push path1
Call BMP2JPGpourVbfrance



 
samedi 10 mars 2007 à 14:06:17 | Re : Utilisation d'une Librairie perso avec MASM32

BruNews

Administrateur CodeS-SourceS
On verra la suite à mon retour de Seattle.
Bonne semaine.

ciao...
BruNews, MVP VC++
samedi 10 mars 2007 à 14:08:40 | Re : Utilisation d'une Librairie perso avec MASM32

Micro_and_Macro

La capture au format BMP est bonne,mais rien ne se passe...
.386
.model flat, stdcall
option casemap :none


include \masm32\include\windows.inc  ; Contient les déclarations de constantes et structures de Win32
include c:\masm32\include\user32.inc ;Déclaration des fonctions de la l'api user32
include c:\masm32\include\wsock32.inc
include c:\masm32\include\kernel32.inc
include c:\masm32\include\gdi32.inc
include c:\masm32\include\winmm.inc
include c:\masm32\include\advapi32.inc
include c:\masm32\include\shell32.inc
include c:\masm32\include\wininet.inc
include capture.inc


;Bibliothèques api
includelib c:\masm32\lib\kernel32.lib;Support d'API de base pour les noyaux Windows 32 bits (mémoire, disques, processus, taches, modules).
includelib c:\masm32\lib\shell32.lib ;Bibliothèque d'API Shell 32 bits.
includelib c:\masm32\lib\user32.lib ;Bibliothèque pour routines d'interfaces utilisateur (fenêtres, menus, messages, ...).
includelib c:\masm32\lib\gdi32.lib ;Bibliothèque d'API pour le périphérique à interface graphique.
includelib c:\masm32\lib\winmm.lib ;Bibliothèque multimédia Windows (multimédia, son, midi, ...)
includelib c:\masm32\lib\advapi32.lib;Start computer, acceder au registre,activer un service
includelib c:\masm32\lib\wininet.lib
includelib c:\masm32\lib\wsock32.lib  ;api winsocket
includelib c:\masm32\lib\BMP2JPG.lib  ;librairie chantage ;--)))

.data
path1 db ".\screenshot.bmp",0
path2 db ".\screenshot.jpg",0
.code

LibMain PROC hInstDLL:DWORD, reason:DWORD, unused:DWORD
   mov      eax, 1
   ret      12
LibMain ENDP

BMP2JPGpourVBFrance PROC  param1:DWORD,param2:DWORD,param3:DWORD
;;(App.Path & "\image.bmp", App.Path & "\image.jpg", 50)
push param3 ;'qualité réglable de 1 à 100
push  param2;push  offset path1
push param1
Call BMP2JPGpourVBFrance
ret    12
BMP2JPGpourVBFrance ENDP
start:
invoke CapScreen,addr fichier
push 100
push offset path2
push offset path1
Call BMP2JPGpourVBFrance
invoke ExitProcess,0
end start

 
samedi 10 mars 2007 à 14:13:04 | Re : Utilisation d'une Librairie perso avec MASM32

Micro_and_Macro

Raaaahhh le baaad,il me reste jusqu'à mercredi pour faire fonctionner cette lib!!!!!
Reviens vite chat noir erudit !! :--))
Moins égoistement bonnes vacances, si tu pars pour le plaisir ^^


 
lundi 12 mars 2007 à 15:12:08 | Re : Utilisation d'une Librairie perso avec MASM32

Guilou34

Ton appel au secours m'interpelle et je me demande s'il n'y pas  quelque confusion  dans la manière dont tu conçois le problème.

Si je comprends bien, tu désires modifier une DLL existante,  à l'aide de  LibMain, dans une application Msdos, mais alors pourquoi inclure un ensemble de fonctions, (API etc )  de Windows?  Parce que cette DLL y fait appel? On conçoit bien qu'une DLL se contentant de convertir du BMP en JPG n'a nul besoin d'utiliser l'interface graphique.

Est-ce l'obligation d'employer Masm32 et Windows ?

Enfin, il me semble que BMP2JPGpourVBfrance est utilisé à la fois comme prototype et comme procédure interne à ton module avec un appel récursif. En outre, tu places toi-même les arguments sur la pile sans respecter le prototype et  dans le mauvais ordre (le plus à gauche doit être empilé le premier).  

En t'obligeant à mieux exposer ton  problème, ce sera peut-être comme je l'ai souvent expérimenté, le moyen le plus simple de le résoudre par toi-même.

Amitiés

 

lundi 12 mars 2007 à 17:00:53 | Re : Utilisation d'une Librairie perso avec MASM32

Micro_and_Macro

Oui alors.. je vais essayer d'être plus clair :)
Est-il possible de ne pas appeler la DLL à chaque fois que je veux convertir une image?
C'est à dire,en créant une libraire qui inclurait cela à la compilation?


 


 

1 2

Cette discussion est classée dans : fonctions, librairie, lib, masm32, bmp2jpg


Répondre à ce message

Sujets en rapport avec ce message

masm32, include [ par coockiesch ] Hello!!!Plein de bonne volonté, j'ai dl un tuto pour ASM Win32... Voici mon code:.386.MODEL FLAT, STDCALLOPTION CASEMAP : NONEINCLUDE \masm32\in MASM32 et Performances ???? [ par gor00 ] Salut à tous, Je me posé une question à propos des programmes en assembleur réalisés à l'aide de MASM32. Cet outil propose plusieurs fonctions et libr [Screenshot, capture d'écran] Comment l'enregistrer dans un Bitmap ? [ par kinkey_wizard ] Bonjour tout le monde,Voici une source qui pour l'instant a pour effet de prendre une capture de l'écran (par simulation d'appui sur la touche PrintSc [API] Fermer une fenêtre de navigateur ouverte avec une URL. [ par kinkey_wizard ] Bonjour tout le monde, Je vous explique mon problème : je voudais ouvrir une page web (par exemple "http://www.google.fr") dans le navigateur par déf Plantage incomprehensible [ par Luong ] Bonjour tout le monde,Voila un petit bout de code qui genere un beau plantage sur mon ordi (memory could not be written) sans que je comprenne vraimen Compiler un .lib sous VSC++ (librairie ASM) [ par epineurien ] Bonjour !Je viens de finir (plus ou moins) la nouvelle version de ma librairie, hors je ne sais pas comment on compile un fichier '.lib' avec VSC+ 200 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 : eclipse sous linux [ par dido44 ] salut,j'espere que je trouve une reponse à ma question?en fait je suis en train de travail sur eclipse/linux , mais j'ai un pb de l'installation ( ecl 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 Impossible d'executer mon programme aprés la compilation (réussite) [ par kepon72 ] Bonjour, Alors voila j'ai coder en asm un programme avec boite de dialogue je l'est compiler avec MASM32 en utilisant ce fichier .bat: [code=autre]@ec


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 9,563 sec (3)

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