Salut je programme en C++ et voudrais créér des librairies statiques en assembleur.
J'en ai testé une avec une fonction qui appelle le mode video 13h avec l'interruption 10h.
Je la compile sans probleme, avec TASM, et obtient un fichier .OBJ.
Mais quand je tente de la lier avec le programme principal en C++ le compilateur (g++ livré avec l'IDE Dev-C++) ne reconna^tt pas la librairie et affiche:
Si quelqu'un avait la moindre idée sur ce probleme...C:\Program Files\Dev-Cpp\bin>g++ biblistat.cpp LIBSTAT.OBJ
LIBSTAT.OBJ: file not recognized: File format not recognized
collect2: ld returned 1 exit status
Voici le code assembleur
Et le code 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 .486 .model small .stack 100h .code start : f1 PROC NEAR MOV ah,00h MOV al,013h INT 10h f1 endp end start
Et le header:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #include <iostream> #include <stdlib> #include "libstat.hpp" using namespace std; int main(){ cout<<"debut"<<endl; f1(); cout<<"fin"<<endl; return 0; }
Merci à tous ceux qui prendront le temps de lire ces lignes!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 extern "C"{ void f1(); }
PS: Désolé de vous imposer du C++
Partager