Achhhh ! Je ne comprends pas ! Désolé, j'ai la tête dure !
Targetver.hpp est un fichier destiné ...Pour l'instant, laisse-le tel quel.
Tu n'auras pas besoin de me dire ça deux fois ! Je n'y touche pas !
StdAfx.h est l'entête primaire pour les entêtes précompilés...Pour l'instant, je te conseille de ne pas t'en servir
Je n'y toucherai pas non pus !
StdAfx.cpp est le fichier permettant, justement, de construire les entêtes précompilés. Par défaut, il est vide, et il doit le rester. Ce n'est PAS un fichier pour y mettre ton code !
Bon, d'accord ! Mais, comme je te l'ai dit, c'est pourtant ce que j'ai fait ! J'ai cliqué sur "générer" et VS m'a effectivement créé un fichier test13.lib !!!!
Qu'est-ce que peut bien contenir test13.lib à présent ???
Un fichier .H n'est jamais compilé, ce ne sont QUE les fichiers .C ou .CPP qui le sont. Donc, c'est normal que ton fichier "test13.h" ne soit pas compilé, il ne le sera qu'au travers des fichiers C/CPP qui l'utilisent.
Je n'ai pas dit que mon fichier test13.h n'était pas compilé ; j'ai dit qu'il n'existait pas. A fortiori ne peut-il pas être compilé ! Dans ma naïveté, j'ai pensé que VS allait me créer un fichier test13.cpp et me demander d'y loger mon code pour les fonctions que j'avais envie de mettre dans la LIB, et qu'il allait créer et remplir automatiquement un test13.h. J'ai justement remarqué qu'il n'avait rien fait de tel.
Mon interprétation des fichiers .h est la suivante :
Lorsqu'un code fait référence à une fonction qui n'existe pas dans ce code, le compilateur a besoin de connaître la syntaxe d'appel de la fonction pour indiquer à l'utilisateur si la fonction référencée est correctement appelée ou pas. Il laisse au linker le soin d'aller chercher où il pourra les fonctions précompilées dans des librairies (.lib) pour la création d'un exécutable complet, ou dans des librairies .dll lors de l'exécution. A mon avis, les fichiers .h ne sont pas compilés, car pas compilables ; elles ne contiennent que les prototypes des fonctions et pas leur code.
Au demeurant, je trouve que cette expression "fichiers d'entête précompilés" est malheureuse. Le fichiers ne sont pas "précompilés" et ils ne seront pas davantage compilés ultérieurement. Ce sont les fonctions référencées dans ces fichiers qui ont été préalablement compilées, pas les fichiers, pas les entêtes ! Mais peut-être ai-je mal interprêté encore...
Merci de me dire si j'ai au moins correctement compris ça !
Donc : essaie plutôt de partir d'un projet vide pour démarrer
Ça je ne comprends pas ! Je viens de demander à VS de créer une librairie qui s'appelle test13.lib ! Je m'attends par conséquent à trouver un fichier (genre test13.cpp) où je vais taper le code des fonctions que je vais mettre dans ma librairie. Je ne le trouve pas : VS ne l'a pas créé. Tu me dis de "partir d'un projet vide". Comment ? J'ai cliqué sur Nouveau->projet->CLR->Projet vide CLR ; j'ai donné le nom "bidon". A présent, la "solution" test13, contient deux "projets" : test13 et bidon ! L'explorateur Windows me dit que dans le dossier "test13", a été créé un sous-dossier bidon, qui contient un fichier bidon.vcproj et c'est tout. Par contre, dans la fenètre de VS est apparu, de manière légèrement différente un "projet" bidon avec trois petits rectangles jaunes (qui évoquent des sous-dossiers) intitulés "fichiers d'entete", fichiers ressources" et "fichiers sources". Mais toujours pas de test13.cpp ! Et cliquer sur ces trois petits rectangles n'a absolument aucun effet !
Je ne sais toujours pas où je vais placer les trois lignes du code de ma fonction "mafonction" !!!
Entre parenthèses, je n'ai pas compris ce qu'est une "solution", un "projet", pas plus que ce que signifie de cliquer sur "générer"
Je te remercie beaucoup du temps que tu as passé à me répondre de manière extensive. Pour être moi-même conseilleur sur d'autres forums d'aide dans ma spécialité (qui n'est pas C++ - ce n'est pas un scoop !), je sais que cela prend beaucoup de temps. Je t'en suis par conséquent très reconnaissant. Je crains malheureusement que je n'aie pas encore fini de t'embêter avec mes questions...
Merci mille fois !
Partager