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

Programmation d'OS Assembleur Discussion :

[OS] Passer la main à un noyau en C


Sujet :

Programmation d'OS Assembleur

  1. #1
    Membre régulier
    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 89
    Points : 106
    Points
    106
    Par défaut [OS] Passer la main à un noyau en C
    Bonjours,

    J'ai commencé un petit OS, le problème c'est que le code du noyau s'execute quand je l'écris en asm mais quand je passe au C il ne réagit plus
    Je vous donne le code (très long je préviens mais c'est pour être sur):

    Pour le bootloader:
    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
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
     
    ;========================================
    ;===              ProtOS - Bootloader v1.0              ===
    ;========================================
     
    [BITS 16]
    [ORG 0x0]
     
    %define KERNEL 0x100
     
    	jmp start
     
    boot_dev:	dw 0	;Disque d'ou on a boote
    off_mem:	dw 0
    boot:		dd "Bootloader v1.0", 0
    kernel:		dd "Chargement du noyau..", 0
     
    start:
    	mov [boot_dev], dl
     
    	mov ax, 7C0h	;Se placer en 07C0:0000
    	mov es, ax
    	mov ds, ax
     
    	;Initialisation de la pile
    	cli		;Desactiver les interruption
    	mov ax, 9000h	;Debut pile: 9000:0000
    	mov ss, ax
    	mov sp, 0FFFFh	;Fin pile: 9000:FFFF
    	sti		;Reactiver les interruption
     
    	call effacer
     
    	mov di, boot
    	call affichage	;Ecrire message
     
    	xor ax, ax
    	int 13h		;Reset Drive
     
    	push es
    	mov ax, KERNEL
    	mov es, ax
    	xor bx, bx
    	mov ah, 2
    	xor al, al
    	inc al		;1 secteur
    	xor ch, ch	;Cylindre 0
    	mov cl, 2	;Secteur 2
    	xor dh, dh	;Tete 0
    	mov dl, [boot_dev]
    	int 13h		;Read from disk
    	pop es
     
    	mov di, kernel
    	call affichage
     
    	jmp KERNEL:0
     
    reboot:
    	mov ax, 40h
    	mov ds, ax
    	mov bx, 72h
    	mov dword [ds:bx], 1234h
    	jmp 0FFFFh:0000	;Redemarrage a chaud
    effacer:
    	pusha
    	push es
     
    	mov ax, 0B800h	;Memoire video texte
    	mov es, ax
    	mov dx, 0720h	;Nombre de caractere/Ecran
    	xor bx, bx
    clear:
    	mov [es:bx], dx
    	add bx, 2
    	cmp bx, 4000
    	jne clear
     
    	popa
    	pop es
    	ret
    affichage:
    	pusha
    	push es
     
    	mov ax, 0B800h	;Memoire video texte
    	mov es, ax
    	mov dh, 4h	;Ecrire en rouge
    	mov bx, [off_mem]
    write:
    	mov dl, [di]	;On prend un caractere
    	cmp dl, 0	;Si c'est un '0'(fin de chaine)
    	je fin		;On finit
    	inc di		;Pointe sur le prochain caractere
    	mov [es:bx], dx	;Afficher le caractere
    	add bx, 2	;Mettre l'offset a jour
    	jmp write
     
    fin:
    	add dword [off_mem], 160
    	popa
    	pop es
    	ret
     
    times 510-($-$$) db 0
    dw 0AA55h
    Le noyau en 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
     
    #include "include/out.h"
     
    void _start(void) {
    	main();
    }
     
    int main (void) {
    	gotoxy(6,7);
    	print("Le noyau en C est chargé!!!!!");
    	scroll(4);
    	print("L'écran est scrollé!!!");
    	while(1);
    }
    Le fichier "out.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 "include/out.h"
     
    int posX=0;
    int posY=0;
     
    void print (char *str) {
    	u_char arg=C_WHITE+B_BLACK;
    	u_char *car;
     
    	u_char *mem_vid=(u_char*)(VIDEO_MEM+posX*2+posY*160);
     
    	for(;*str!=0; str++) {
    		car=str;
     
    		if(mem_vid>(u_char*)VIDEO_MEM_LIMIT)
    			scroll(1);
    		*mem_vid=*car;
    		mem_vid++;
    		*mem_vid=arg;
    		mem_vid++;
    	}
    	return;
    }
     
    void scroll (u_char line) {
    	u_char *mem_vid=(u_char*)(VIDEO_MEM+160*line);
     
    	if(mem_vid>(u_char*)VIDEO_MEM_LIMIT)
    		return;
     
    	for(;mem_vid<(u_char*)VIDEO_MEM_LIMIT; mem_vid++)
    		*mem_vid=*(mem_vid-160);
    	return;
    }
     
    void clear (void) {
    	u_char *mem_vid;
    	mem_vid=(u_char*)VIDEO_MEM;
     
    	for(; mem_vid<(u_char*)VIDEO_MEM_LIMIT; mem_vid++)
    		*mem_vid=0;
    	return;
    }
     
    void gotoxy (u_short x, u_short y) {
    	posX=x;
    	posY=y;
    	return;
    }
    Le "out".h

    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
     
    #ifndef _OUT_H_
    #define _OUT_H_
     
    #include "types.h"
     
    #define VIDEO_MEM 0xB8000
    #define VIDEO_MEM_LIMIT 0xB8FA0
    #define VIDEO_MEM_SIZE 0xFA0
     
    #define C_BLACK 0
    #define C_BLUE 1
    #define C_GREEN 2
    #define C_CYAN 3
    #define C_RED 4
    #define C_MAGENTA 5
    #define C_YELLOW 6
    #define C_WHITE 7
     
    #define SURINT 8
    #define CLIGN 128
     
    #define B_BLACK 0
    #define B_BLUE 16
    #define B_GREEN 32
    #define B_CYAN 48
    #define B_RED 64
    #define B_MAGENTA 80
    #define B_YELLOW 96
    #define B_WHITE 112
     
    extern int posX;
    extern int posY;
     
    /*Print require a string for argument and write it on the screen*/
    void print (char *str);
     
    /*Scroll the screen of "line" lines*/
    void scroll (u_char line);
     
    /*Clear the screen*/
    void clear (void);
     
    /*Jump in a position (x;y) on the screen*/
    void gotoxy (u_short x, u_short y);
     
    #endif
    Et enfin le "types.h"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    #ifndef _TYPES_H_
    #define _TYPES_H_
     
    #define TRUE  1
    #define FALSE 2
     
    typedef unsigned char u_char;
    typedef unsigned short u_short;
    typedef unsigned int u_int;
     
    #endif
    Si vous êtes parvenus ici je peux déjà vous dire merci
    Par ailleur je ne suis pas sur que ma méthode de compilation et de liaison est bonne, donc si les plus aguérits pourraient me donner un example de compilation de ce genre de projet (j'utilise gcc, nasm et ld).

  2. #2
    Membre du Club Avatar de Arnaudv6
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 82
    Points : 63
    Points
    63
    Par défaut
    Et c'est quoi, ta méthode de compilation ?
    je sais que j'en bave a chaque fois...
    un truc est clair : en assembleur, le 16bits, c'est courrant,
    en C, ca l'est moins

  3. #3
    Membre régulier
    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 89
    Points : 106
    Points
    106
    Par défaut
    Argh ça veux dire que je doit passer un mode protégé avant de charger mon noyau?

    Ma méthode de compilation c'était:

    nasm -f bin -o fichier fichier.asm (pour les fichier *.asm)
    gcc -c fichier.c (pour les fichier *.c)
    ld --oformat binary -Ttext 1000 kernel.o aff.o -o kernel (Lié les .c compilé (libs+noyau))

    Puis pour les mettres sur diquette je fais:
    cat bootsect kernel >> boot

    Et je déplace "boot" sur la disquette (après l'avoir formaté)..

  4. #4
    Membre du Club Avatar de Arnaudv6
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 82
    Points : 63
    Points
    63
    Par défaut
    ...je ne sais pas
    pour nasm, c'est bon, c'est clair
    (tu peux meme enlever le "-o fichier",
    car c'est son output par défaut....
    pour le reste, je n'en sais rien
    ton linker ne bronche a aucun moment ?
    je n'utilise pas ld (ni gcc),
    mais il y a surement un verbose mode ?

    Pour ce qui est de la copie de l'OS, sous linux,
    je suis un néophyte, mais je sais que j'utilise dd,
    et que je ne suis pas le seul, enfin, si cat marche....

    je ne peux plus grand chose pour toi, je crois,
    je laisse le sujet a des experts bonne prog,
    poste quand tu auras la réponse!

  5. #5
    Membre régulier
    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 89
    Points : 106
    Points
    106
    Par défaut
    Lol dd je l'utilise aussi cat c'est juste pour mettre les fichiers binaires un a coté de l'autre, ainsi je sais que le noyau commence juste apres le bootloader

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 96
    Points : 116
    Points
    116
    Par défaut
    Il y avait un bon tuto la dessus sur osdever.net ... Avec ce genre de problèmes...
    Malheureusement ils sont indisponibles en ce moment.. (peut être même qu'ils se sont fait rooter ou qi'ils ont fermé..)

    Sinon regarde toujours: http://inferno.cs.univ-paris8.fr/~am/tutorial/os/tutorial00.html
    ...
    Responsable du projet SKAN (OS à but didactique)
    Contactez moi pour toutes questions ou remarques sur le projet.

  7. #7
    Membre régulier
    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 89
    Points : 106
    Points
    106
    Par défaut
    Merci, mais c'est avec ce site que j'ai commencé (très interessant et bien expliqué au passage ). Mais je pense que je dois passer en mode protégé pour exécuté du code 32bit (à partir de sources C)..

    C'est bête pour le premier site car il m'avait l'air plutôt interessant..

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 96
    Points : 116
    Points
    116
    Par défaut
    C'est bête pour le premier site car il m'avait l'air plutôt interessant..
    Vi ! D'autant plus que c'était le plus grand site de doc pour l'osdev sur le web....
    Pourtant, on peut toujours afficher certaines parties du site grace au cache de google (merci google !!):
    http://www.google.fr/search?q=+site:www.osdever.net&hl=fr&lr=&start=0&sa=N
    Essaye de chercher la dedans ... Mais n'espère pas trop ...


    Mais je pense que je dois passer en mode protégé pour exécuté du code 32bit (à partir de sources C)..
    Oui, c'est plus sage...
    Responsable du projet SKAN (OS à but didactique)
    Contactez moi pour toutes questions ou remarques sur le projet.

  9. #9
    Membre régulier
    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 89
    Points : 106
    Points
    106
    Par défaut
    Apres avoir fouillé dans les caches google, j'ai trouvé pas moins de 41 tutos!!!
    Merci pour l'idée par contre pour les .pdf c'est foutu mais bon..

    Je met la liste de ce que j'ai trouvé ici, comme ça si quelqu'un a besoin d'une doc je peux lui envoyer, ou même les mettres tous sur un ftp..

    Voici les titres des tutos:

    A Brief Tutorial on GCC inline asm (x86 biased)
    An Overview of Monolithic and Micro Kernels
    Exemple bochrc
    Bochs for Windows
    Copying Your Bootsector to a Floppy
    Cottontail Memory Management: A System for Allocation, Deallocation, and Accounting
    CPU informations
    Descriptor Tables: GDT, IDT and LDT
    Detecting Floppy Drives
    Device Management
    Enabling the A20 Line
    Getting Started in OS Development
    GUI Development
    Hardware Level VGA and SVGA Video Programming
    How to program the DMA
    Implementing Basic Paging
    LBA to CHS
    Loading Sectors
    Making a Simple C kernel with Basic printf and clearscreen Functions
    Memory Management 1
    Memory Management 2
    Mixing Assembly and C-code
    Multitasking Howto
    OS Design
    Pagetables
    Programming the PIC
    Protected Mode
    simple_asm
    Software Task-Switching
    SPINLOCKS, Part I
    SPINLOCKS, Part II
    SPINLOCKS, Part III
    Suggestions for making your OS
    The booting process
    The PIT: A System Clock
    The Workings of: x86-16/32 RealMode Addressing
    The world of Protected mode
    Using GRUB
    Writing a Kernel in C
    Xosdev Chapter 1 [The Bootloader]
    Xosdev Chapter 2 [Basic Kernel]

  10. #10
    Membre du Club Avatar de Arnaudv6
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 82
    Points : 63
    Points
    63
    Par défaut
    je confirme : si tu peux tous les mettre sur ftp,
    ce sera utile a plein de monde !

  11. #11
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 937
    Points : 59 417
    Points
    59 417
    Billets dans le blog
    2
    Par défaut
    Avant tout, il conviendrait de consulter les licences de tous ces tutos !
    Tu nous tiens au courant ?
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 96
    Points : 116
    Points
    116
    Par défaut
    Il y avait aussi une archive sur ce site: "Cottontail OS Development Library"
    C'était un _gros_ bloc de docs d'un autre site qui avait fermé... On pourrait peut être utiliser la même manip pour retrouver toutes les docs ?
    En tout cas, ce serait bien de les télécharger, au cas où google les supprimerait de son cache ....

    Pour le ftp: on ne peut pas demander à dvp.com ?
    Responsable du projet SKAN (OS à but didactique)
    Contactez moi pour toutes questions ou remarques sur le projet.

  13. #13
    Membre régulier
    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 89
    Points : 106
    Points
    106
    Par défaut
    Pour OSdever, j'ai pu trouver en tout 49 tutos (les .pdf étaient "caché" (mis en cache)) par google au format html.
    Pour la Cottontail OS Development Library, j'ai vu que tout les fichiers sont zippés (donc ne sont pas dans le cache google..), alors à moins d'avoir des copies html, txt ou pdf je pense pas qu'on puisse les récupérer..

    Pour les licenses, j'ai regardé il n'y en a aucune mention, par contre sur plusieurs tutos j'ai aperçu les mails des auteurs, je pourrais donc leur demander leur accord mais bon pour 49 fichiers enfin c'est fesable.. Je verrais ce que je pourrais faire sur ce point.

    Une fois que je serrais sûr que je pourrais les rendres dispo publiquement, je pense que trouver un petit serveur ftp n'est pas très dur.. Pour le moment si quelqu'un a absolument besoin d'une doc je peux toujours lui envoyer personnellement (si j'ai le droit bien sur ).

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 10
    Points : 12
    Points
    12
    Par défaut
    Bonjour,

    une autre possibilité est de rester en mode réel 16 bits.

    Sous windows : nasm + tcc(borland gratuit) + jloc

    Sous linux : ? je ne connais malheureusement pas de compilateur c 16 bits.

    A bientôt.

  15. #15
    Membre régulier
    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 89
    Points : 106
    Points
    106
    Par défaut
    Merci pour l'astuce, c'est vrai que j''avais pas pensé à un compilo 16bits
    Mais à force d'y penser je pense que je vais quand même passer un mode protégé (pour les avantages non négligeables que permet ce mode)

  16. #16
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 937
    Points : 59 417
    Points
    59 417
    Billets dans le blog
    2
    Par défaut
    A quelques exceptions près, les tutos sont toujours disponibles :
    http://www.osdever.info/tutorials.php?cat=0&sort=1
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 96
    Points : 116
    Points
    116
    Par défaut
    Oui visiblement ils sont en train de migrer vers un nouveau serveur... Donc pas de raison de s'inquieter ...
    Responsable du projet SKAN (OS à but didactique)
    Contactez moi pour toutes questions ou remarques sur le projet.

  18. #18
    Membre régulier
    Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juillet 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juillet 2004
    Messages : 89
    Points : 106
    Points
    106
    Par défaut
    Voilà qui est rassurant!

    C'est pas tout les jurs qu'on découvre l'éxistance d'un site pareil

  19. #19
    Membre du Club Avatar de Arnaudv6
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 82
    Points : 63
    Points
    63
    Par défaut
    Le reve ! merci Alcatîz
    vivement qu'ils aient fini de reinstaller :
    certains telechargements sont innaccessibles,
    enfin... c'est une mine ! 8)

  20. #20
    Futur Membre du Club
    Inscrit en
    Juin 2005
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Trés bonne documentation

Discussions similaires

  1. [Toutes versions] Passer la main à une macro VBA à partir d'une macro Excel4
    Par AgentF13 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 25/04/2014, 23h19
  2. Réponses: 5
    Dernier message: 20/12/2006, 07h39
  3. Visual C++ express arguments à passer au main
    Par jeannemarion dans le forum Visual C++
    Réponses: 2
    Dernier message: 26/10/2006, 14h45
  4. [VB.NET] Passer la main a une autre app
    Par b_lob dans le forum Windows Forms
    Réponses: 2
    Dernier message: 09/10/2006, 12h18

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