Bonjour,

donc voila, je cherche a faire un programme mélangeant asm et C. Pour se faire je transforme mon code asm en libraiie .obj qui devrait pourvoir se linker avec dev c++ a mon programme en c.

1) j'ai codé mon programme asm en fichier .asm ( logic). avec un .bat j'ai récupéré le .obj de on fichier .asm.

2) j'ai codé mon programme c sous dev c++.

3) j'ai créé un fichier .hpp pour pouvoir linker mes 2 fichier.

le problème c'est que j'ai beau faire sous dev c++: clic droit sur le projet/option du projet/paramètre et mettre dans éditeur de lien le chemin pour aller chercher mon fichier .obj précédemment créé, j’obtiens l'erreur suivante :
5 U:\gg\projet\main.c asm.hpp: No such file or directory.
U:\gg\projet\Makefile.win [Build Error] [main.o] Error 1
ressources :

programme en c sous dev c++ :

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
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include <cstdlib>
#include <iostream>
#include <windows.h>
#include <unistd.h>
#include <asm.hpp> // header de la librairie
 
char FileVide () ;
int IdCGFileDesProc;
char ZF;
unsigned char FDP[10][10],QES[10][10];
void funct_FileVide(int IdCGFileDesProc);
int main(void)
{
 
    IdCGFileDesProc=10;
    funct_FileVide(IdCGFileDesProc);
    FDP[8][0]=10;
    FDP[8][1]=12;
    FileVide () ;
    printf("%d",ZF);
    Sleep(10000);
}
 
 
char FileVide (void)
{
    if(FDP[8][0]==IdCGFileDesProc)
    {
        if(FDP[8][0]==FDP[8][1])
        {
            ZF=1;
        }
        else
        {
            ZF=0;
        }
    }
    else
    {
        if(QES[8][0]==QES[8][1])
        {
            ZF=1;
        }
        else
        {
            ZF=0;
        }
    }
return ZF ;
}
programme en asm du fichier .asm ( ce fichier est nommé très originalement asm.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
; asm.asm
 
.386
.MODEL flat,stdcall
 
funct PROTO near C,IdCGFileDesProc:DWORD; prototype assembleur
 
.code
funct PROC near C, IdCGFileDesProc:DWORD
 
mov IdCGFileDesProc,00000000
 
ret
funct ENDP
 
END


et enfin mon fichier qui fais le lien entre les deux ( nommé ne fois de plus asm.hpp ) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
// asm.hpp
 
extern "C" {
    void funct_FileVide(int IdCGFileDesProc);
}


Je suis conscient que ce programme ne fait pas grand chose ... mais c'est juste un teste pour voir si sa marche car un code beaucoup plus conséquent attend derrière ^^.

je reste à votre disposition si vous avez des questions à me poser

merci d'avance de vos réponses