IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

x86 32-bits / 64-bits Assembleur Discussion :

MessageBox.res :file not found


Sujet :

x86 32-bits / 64-bits Assembleur

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 14
    Points : 12
    Points
    12
    Par défaut MessageBox.res :file not found
    Bonsoir,

    Je débute en assembleur et j'ai essayé ce petit programme:

    Code asm : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    .386
    .model flat,stdcall
    option casemap:none
     
    include windows.inc
     
    include user32.inc
    includelib user32.lib
     
    include kernel32.inc
    includelib kernel32.lib
     
    .data
    MsgBoxCaption BYTE "Hello world", 0
    MsgBoxText    BYTE "Un bon langage aujourd'hui vaut mieux qu'un langage parfait demain", 0
     
    .code
    start:
     
    invoke MessageBox, NULL , addr MsgBoxText, addr MsgBoxCaption, MB_OK + MB_ICONASTERISK	
    invoke ExitProcess,0
     
    end start

    Malheureusement, quand j'essaie de l'exécuter, je reçois le message d'erreur suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    File not found:
    MessageBox.res
    OS: Windows XP, pack2
    Assembleur: Masm

    Quelqu'un peut-il m'aider?

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Points : 1 956
    Points
    1 956
    Par défaut
    Bonjour,

    Essaye de compiler à la main dans un premier temps. L'erreur peut apparaitre si tu utilises un IDE (Radasm, Winasm, etc.) et que tu as créé un projet avec ressources mais que celui ci n'en contient pas.

    On part avec deux fichiers source: "test.asm" et "test.inc". Le fichier include ('*.inc") ne contient que des include / includelib.

    test.asm :
    Code asm : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
    .686p
    .mmx
    .xmm
    .model flat, stdcall  ;32 bit memory model
    option casemap :none  ;case sensitive
    assume fs:nothing
     
    include Test.inc
     
    .data
    MsgBoxCaption BYTE "Test program",0
    MsgBoxText BYTE "Hello world!",0
     
    .code
    start:
     
    	invoke MessageBox, NULL, addr MsgBoxText, addr MsgBoxCaption, MB_OK
        invoke ExitProcess, 0	
     
    	ret
     
    end start

    test.inc:
    Code asm : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    include windows.inc
     
    include kernel32.inc
    include user32.inc
     
    includelib kernel32.lib
    includelib user32.lib

    Sauvegarde les deux fichiers dans (c'est un exemple) c:\temp\

    Démarre un shell (ligne de commande): touche "Windows" + R > tape "cmd"

    On part du principe que MASM se trouve dans c:\masm32

    Microsoft Windows XP [Version 5.1.2600]
    (C) Copyright 1985-2001 Microsoft Corp.

    C:\Documents and Settings\Seb>cd c:\temp

    C:\temp>PATH %PATH%;c:\masm32\bin

    C:\temp>ML.EXE /c /coff /Cp /nologo /I"c:\masm32\include" test.asm
    Assembling: test.asm

    C:\temp>LINK.EXE /SUBSYSTEM:WINDOWS /RELEASE /VERSION:4.0 /LIBPATH:"c:\masm32\lib" /OUT:"test.exe" test.obj
    Microsoft (R) Incremental Linker Version 5.12.8078
    Copyright (C) Microsoft Corp 1992-1998. All rights reserved.

    C:\temp>test.exe
    1) La première ligne place le répertoire courant comme étant c:\temp (là où résident "test.asm" et "test.inc").

    2) La deuxième ligne ajoute le répertoire c:\masm32\bin (où se trouve le programme d'assemblage [ml.exe] et l'éditeur de lien [link.exe]) au PATH.

    3) Compilation des fichiers source: le résultat doit produire un fichier "test.obj" dans le répertoire c:\temp. C'est un fichier objet.

    4) Edition de lien sur "test.obj" qui doit produire "test.exe", toujours dans c:\temp.

    5) Exécution de "test.exe"

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 14
    Points : 12
    Points
    12
    Par défaut Réponse à Neitsa
    Bonjour,

    Je te remercie Neitsa de t'avoir donné la peine de me répondre. Malheureusement,comme je suis un débutant, je n'ai pas très bien compris.Je ne sais même pas comment compiler à la main.Je te signale que le petit programme en question est tiré de "Pas-à-pas vers l'assembleur" de Lord Noteworthy et que j'utilise Masm32 et L'IDE Radasm.

    Merci quand même.

  4. #4
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    J'ai finalement trouvé la solution.Je la poste pour ceux qui peuvent se trouver dans ce genre de situation.J'ai modifié le programme comme ci-dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    .386
    .model flat, stdcall
    option casemap:none
     
    include \masm32\include\windows.inc
     
    include \masm32\include\user32.inc
    includelib \masm32\lib\user32.lib
     
    include \masm32\include\kernel32.inc
    includelib \masm32\lib\kernel32.lib
     
    .data
    MsgBoxCaption BYTE "Hello world!", 0
    MsgBoxText    BYTE "Un bon langage aujourd'hui vaut mieux qu'un langage parfait demain.", 0
     
    .code
    start:
     
    invoke MessageBox, NULL, addr MsgBoxText, addr MsgBoxCaption, MB_OK + MB_ICONASTERISK
    invoke ExitProcess, 0
     
    end start
    Il faut utiliser qEditor de MASM32. Après avoir chargé le fichier, cliquer sur
    Project et ensuite, choisir Assemble & Link .

    Une fois cela fait,revenir à Project et cliquer sur Run Program.
    C'est tout et à la prochaine

  5. #5
    Noteworthy
    Invité(e)
    Par défaut
    Salut OKTAH,

    J'affirme ce que Neitsa a dit:
    "L'erreur peut apparaitre si tu utilises un IDE (Radasm, Winasm, etc.) et que tu as créé un projet avec ressources mais que celui ci n'en contient pas."
    Lors de la création d'un nouveau projet, si ton programme ne contient pas de fichier ressource (*.RC), il faut décocher "Compiler RC" sous RadAsm.

    Amicalement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. table externe - file not found
    Par juin29 dans le forum Oracle
    Réponses: 9
    Dernier message: 07/12/2010, 11h52
  2. Erreur avec skin: [error] File not found 'vclskin.res'
    Par Siguillaume dans le forum Langage
    Réponses: 9
    Dernier message: 28/08/2008, 17h20
  3. File not found
    Par mattyeux dans le forum ASP
    Réponses: 7
    Dernier message: 14/02/2007, 22h12
  4. Exception: TXMLDocument.LoadXMLFile File not found
    Par powerlog dans le forum XMLRAD
    Réponses: 12
    Dernier message: 09/08/2005, 10h29
  5. [Quartz][Tomcat] Jobs.xml file not found exception
    Par Arnaud Giuliani dans le forum Tomcat et TomEE
    Réponses: 1
    Dernier message: 05/08/2005, 09h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo