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

Assembleur

 > 

Divers

 > 

Général

 > 

send db to bmp


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

send db to bmp

vendredi 8 janvier 2010 à 16:41:50 | send db to bmp

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 txt mais je n' arrive pas a y sorti mon bmp...

Source.asm
Code :
.386
.model flat,stdcall
option casemap:none

include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib

.data
my_file db "test.bmp",NULL
my_bytes db "OwNeDbYp0m1",NULL

;Mybmp
   hFile dd ?
   include bmp.inc ; on retrouve un bmp sous forme DB 
.code
start:
; comme sa sa marche ( ouvrir avec un editeur "notepad++")
; si on met Mybmp a la place de my_bytes sa ne marche plus
  invoke CreateFile,addr my_file,GENERIC_READ or GENERIC_WRITE,0,0,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0
  mov hFile,eax
  invoke lstrlen,addr my_bytes
  invoke WriteFile,hFile,addr my_bytes,eax,0,0
  invoke CloseHandle,hFile
  
  invoke ExitProcess,0
   
end start
vendredi 8 janvier 2010 à 17:05:59 | Re : send db to bmp

BruNews

Administrateur CodeS-SourceS
QUELLE HORREUR !!!
Faut commencer par apprendre l'ASM.
Une suite de 'invoke' ne donnera qu'une daube, rien de plus.

Disons qu'on a ADDR de my_bytes dans ESI:
lea eax, [esi - 1]
strLEN:
add eax, 1
cmp byte ptr[eax], 0
jne short strLEN
sub eax, esi ; EAX contient srtlen de my_bytes
CELA SANS AUCUN APPEL DE FONCTION !!!

ciao...
BruNews, MVP VC++
vendredi 8 janvier 2010 à 17:31:04 | Re : send db to bmp

vincent2795

ok mais cela ne change pas le resultat...
vendredi 8 janvier 2010 à 17:44:35 | Re : send db to bmp

vincent2795

Code :
.386
.model flat,stdcall
option casemap:none

include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib

.data
my_file db "test.bmp",NULL
   hFile dd ?
   include bmp.inc ; on retrouve un bmp sous forme DB  ;Mybmp
   
.code
start: 

invoke CreateFile,addr my_file,GENERIC_READ or GENERIC_WRITE,0,0,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0
	mov hFile,eax
	
	lea esi, Mybmp		
	lea eax, [esi - 1]
	strLEN:
	add eax, 1
	cmp byte ptr[eax], 0
	jne short strLEN
	sub eax, esi
	
invoke WriteFile,hFile,addr Mybmp,eax,0,0
invoke CloseHandle,hFile 
invoke ExitProcess,0
   
end start


j' ai mis ta suggestion.
il es vrai je ne suis pas du tous du monde informatique, ces pourquoi je suis pas très bon sur le sujet!
Mon probleme perciste, pour un chaine sa fonctionne mais pour mettre mon bmp qui est en db il ne me met sa dans mon fichier "BMÖh".
vendredi 8 janvier 2010 à 18:54:34 | Re : send db to bmp

BruNews

Administrateur CodeS-SourceS
Tu as calculé strlen() ok mais le chainage sur my_file est fait ??? ben non.

Si tu n'es pas du monde informatique, ça se conçoit fort bien, alors ne perds pas de temps avec l'ASM qui nécessite quelques années de pratique pour sortir quoi que ce soit de correct.

Fais ton prog en C, ce sera nettement plus aisé et tu auras de plus un exe nettement plus performant qu'avec du pseudo ASM.

ciao...
BruNews, MVP VC++
samedi 9 janvier 2010 à 09:43:19 | Re : send db to bmp

vincent2795

Code :
.386
.model flat,stdcall
option casemap:none

include \masm32\include\windows.inc
include \masm32\include\user32.inc
include \masm32\include\kernel32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib

.data
Adress_File db "test.cfg",NULL
hFile dd ?
   include bmp.inc ; on retrouve un bmp sous forme DB  ;Mybmp
   
.code
start: 

invoke CreateFile,addr Adress_File,GENERIC_READ or GENERIC_WRITE,0,0,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,0
	mov hFile,eax
;	*
	lea esi, Mybmp		
	lea eax, [esi - 1]
	strLEN:
	add eax, 1
	cmp byte ptr[eax], 0
	jne short strLEN
	sub eax, esi
;	*
	push 0
	push 0
	push eax
	push offset Mybmp
	push hFile
	call WriteFile
;	*
invoke CloseHandle,hFile 
;	*
	push 0
	call ExitProcess
   
end start
mardi 19 janvier 2010 à 09:31:31 | Re : send db to bmp

vincent2795

UP!

Si quelqu'un sais il faut le dire sa me sert mais sa sert a toutes les personnes qui rencontre le problème.


Cette discussion est classée dans : db, include, my, bmp, masm32


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 [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 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 [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 Messagebox (niveau débutant) [ par Ulala2 ] Bonjour,je suis en train de créer une dll que je vais invoquer en vb6.Tout marche très bien, sauf pour la fonction messagebox dont n'arrive pas à récu md.dll, comment utiliser md5() ? [ par Noit ] J'ai récupéré la dll sur le site de WiteG(le lien se trouve sur le site asmfr)J'arrive à compiler le programme suivant avec masmmais en débuggant il s probleme de simulation de 8086 sur ISIS PROTEUS [ par AZERGUI2 ] Bonjour, j'ai généré le .exe du programme suivant par le MAMSM32 ,mais la simulation ça marche pas au niveau de ISIS PROTEUS !!! il s'agit de tro Serrure codée [ par raphi67 ] Voilà je viens de commencer mon projet donc je l'explique. Il s'agit d'une serrure codée, alors j'ai commencé mon projet avec un monostable au début e afficher la somme de 2 entiers superieur à 9 [ par Benh_m ] Bonjour à tous ! Alors voila, j'ai un devoir en Assembleur à faire et j'ai un problème : je dois faire la somme de deux entiers, jusque la tout va bi [MASM32] Probleme de conversion [ par Noit ] Bonjour,J'ai dans EAX une valeur: 67B54J'aimerai afficher cette valeur, plutot que la chaine correspondante, dans une MessageBox.Merci de m'expliquer


Nos sponsors


Sondage...

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

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