[debutant] RE: Rép. : Re: [debutant] Librairies dynamiques avec Mandrake
Ah et bien je ne connaissais pas du tout cette possibilité... je veux bien avoir des infos lorsque tu en auras :o) (peut-etre en privé, car tout ceci mes semble OffTopic) -Message d'origine- De: Jean-Paul Cheppe [SMTP:[EMAIL PROTECTED]] Date: jeudi 2 mars 2000 17:27 À:[EMAIL PROTECTED]; [EMAIL PROTECTED] Objet:Rép. : Re: [debutant] Librairies dynamiques avec Mandrake En fait ton exemple est incomplet, car dans ton premier mail tu voulais aussi les décharger après exécution des fonctions utiles. En fait, si j'ai bien compris c'est de l'overlay que tu veux faire. Dans le temps, quand la mémoire était limitée et très très chère c'est ce qu'on faisait. Actuellement, je ne sais si cela existe encore, mais à mon avis oui. Cherche dans un bon bouquin de programmation concernant C++. Jean-Paul Cheppe "Aldo Tendron" [EMAIL PROTECTED] 02/03/00 14h51 En fait tout ceci est pris en charge par le compilo (ou plus exactement par l'éditeur de liens, ld) Je me suis mal exprime, ou alors je n'ai pas bien compris : je souhaite controler le chargement avec le programme, c'est a dire que je veux faire un programme qui charge et decharge a la demande la librairie, et non pas un chargement pour toute l'execution du programme, ce qui doit se passer avec une methode "classique" d'edition de liens ? Ce que je veux faire exclut d'emblee les librairies statiques, mais je ne sais pas s'il existe une solution avec les librairies dynamiques. Par exemple, je voudrais pouvoir executer l'algo suivant : si (jour pair) charger librairie_pair sinon charger librairie_impaire Utiliser_les fonctions_de_la_librairie_chargee Merci pour les listes
[debutant] RE: Rép. : Re: [debutant] Librairies dynamiques avec Mandrake
L'utilisation des Overlay est en fait très simple. Le programeur n'a que quelques clauses de compilation à ajouter à ses sources, déclarer dans le programme principal que certains modules doivent être traités comme overlay et charger un gestionnaire d'overlay qui se présente le plus souvent comme un module. On compile, on link-edit et c'est tout. Il n'est même pas nécessaire de faire des tests comme tu le fais pour charger l'un ou l'autre module. Il te suffit d'appeler une procédure ou fonction d'un de tes modules overlayés pour que celui-ci soit chargé par le gestionnaire d'overlay. Lorsque tu quittes le modules, le gestionnaire d'overlay l'efface. Au démarrage du programme, le gestionnaire détermine la taille du plus grand module et se charge d'allouer une zone mémoire suffisante. J'aimerais bien t'aider. Malheureusement, je ne fais plus de programmation depuis au moins 15 ans. et à 47 ans je ne connais même pas C ou C++ (et encore moins Java). J'ai donc perdu le fil. Lorsque je travaillais en FORTRAN IV et 77 et en Pascal (Borland) ainsi qu'avec le système UCSD sur Apple II (c'est dire si cela date), je me souviens avoir très souvent utilisé cette possibilité. En fait pour référence, tous les gros logiciels sous DOS (LOTUS-123, SuperCalc, ...) travaillaient comme cela pour s'affranchir artificiellement de la barrière des 640K. Je pense qu'il doit y avoir des infos plus développées sur le WWW. Recherche un peu sur les sites qui s'intéressent à la programmation et en particulier celui de GNU. Désolé de ne pas pouvoir t'aider plus. Amitiés Jean-Paul "Picard, Cyril" [EMAIL PROTECTED] 03/03/00 09h30 Ah et bien je ne connaissais pas du tout cette possibilité... je veux bien avoir des infos lorsque tu en auras :o) (peut-etre en privé, car tout ceci mes semble OffTopic) -Message d'origine- De: Jean-Paul Cheppe [SMTP:[EMAIL PROTECTED]] Date: jeudi 2 mars 2000 17:27 À:[EMAIL PROTECTED]; [EMAIL PROTECTED] Objet:Rép. : Re: [debutant] Librairies dynamiques avec Mandrake En fait ton exemple est incomplet, car dans ton premier mail tu voulais aussi les décharger après exécution des fonctions utiles. En fait, si j'ai bien compris c'est de l'overlay que tu veux faire. Dans le temps, quand la mémoire était limitée et très très chère c'est ce qu'on faisait. Actuellement, je ne sais si cela existe encore, mais à mon avis oui. Cherche dans un bon bouquin de programmation concernant C++. Jean-Paul Cheppe "Aldo Tendron" [EMAIL PROTECTED] 02/03/00 14h51 En fait tout ceci est pris en charge par le compilo (ou plus exactement par l'éditeur de liens, ld) Je me suis mal exprime, ou alors je n'ai pas bien compris : je souhaite controler le chargement avec le programme, c'est a dire que je veux faire un programme qui charge et decharge a la demande la librairie, et non pas un chargement pour toute l'execution du programme, ce qui doit se passer avec une methode "classique" d'edition de liens ? Ce que je veux faire exclut d'emblee les librairies statiques, mais je ne sais pas s'il existe une solution avec les librairies dynamiques. Par exemple, je voudrais pouvoir executer l'algo suivant : si (jour pair) charger librairie_pair sinon charger librairie_impaire Utiliser_les fonctions_de_la_librairie_chargee Merci pour les listes
RE: [debutant] Librairies dynamiques avec Mandrake
En fait tout ceci est pris en charge par le compilo (ou plus exactement par l'éditeur de liens, ld) Tu écris ton programme, ensuite tu compiles en spécifiant les libs à utiliser pour le link : gcc toto.o -lmalib Des options de gcc permettent de demander une compilation avec édition de liens statiques ou dynamique, au choix. Pour plus d'infos : mailing list C++ sous linux sur http://mail.i-docs.org/mailman/listinfo/tuxcpprogramming je pense mailing list C sous linux sur http://mail.i-docs.org/mailman/listinfo/tuxcprogramming -Message d'origine- De: Aldo Tendron [SMTP:[EMAIL PROTECTED]] Date: jeudi 2 mars 2000 08:32 À:[EMAIL PROTECTED] Objet:[debutant] Librairies dynamiques avec Mandrake Bonjour, J'aimerais savoir s'il est possible, dans un programme C, de charger dynamiquement des librairies. Je souhaite charger une dll, puis recuperer l'adresse de la fonction qui m'interesse, et executer la fonction. Puis dans le programme, je decharge la librairie, et j'en charge une autre, etc... Est-ce que les librairies dynamiques permettent ce genre de manipulation ? Par analogie, je souhaite transposer ce qui peut se faire avec les DLL sous Windows, sachant que le mecanisme de chargement / dechargement de DLL n'est , parait-il, pas specifique a Winodws. Merci PS : je me rend compte que ma question n'a pas grand chose a voir avec Mandrake, si ce n'est que c'est le systeme sur lequel je veux developper mon application, avec kdevelop. Configuration : Mdk 6.1, noyau 2.2.13 (?) PII 400 64Mo glibc 2.1 -- Aldo Tendron
Re: [debutant] Librairies dynamiques avec Mandrake
En fait tout ceci est pris en charge par le compilo (ou plus exactement par l'éditeur de liens, ld) Je me suis mal exprime, ou alors je n'ai pas bien compris : je souhaite controler le chargement avec le programme, c'est a dire que je veux faire un programme qui charge et decharge a la demande la librairie, et non pas un chargement pour toute l'execution du programme, ce qui doit se passer avec une methode "classique" d'edition de liens ? Ce que je veux faire exclut d'emblee les librairies statiques, mais je ne sais pas s'il existe une solution avec les librairies dynamiques. Par exemple, je voudrais pouvoir executer l'algo suivant : si (jour pair) charger librairie_pair sinon charger librairie_impaire Utiliser_les fonctions_de_la_librairie_chargee Merci pour les listes
Rép. : Re: [debutant] Librairies dynamiques avec Mandrake
En fait ton exemple est incomplet, car dans ton premier mail tu voulais aussi les décharger après exécution des fonctions utiles. En fait, si j'ai bien compris c'est de l'overlay que tu veux faire. Dans le temps, quand la mémoire était limitée et très très chère c'est ce qu'on faisait. Actuellement, je ne sais si cela existe encore, mais à mon avis oui. Cherche dans un bon bouquin de programmation concernant C++. Jean-Paul Cheppe "Aldo Tendron" [EMAIL PROTECTED] 02/03/00 14h51 En fait tout ceci est pris en charge par le compilo (ou plus exactement par l'éditeur de liens, ld) Je me suis mal exprime, ou alors je n'ai pas bien compris : je souhaite controler le chargement avec le programme, c'est a dire que je veux faire un programme qui charge et decharge a la demande la librairie, et non pas un chargement pour toute l'execution du programme, ce qui doit se passer avec une methode "classique" d'edition de liens ? Ce que je veux faire exclut d'emblee les librairies statiques, mais je ne sais pas s'il existe une solution avec les librairies dynamiques. Par exemple, je voudrais pouvoir executer l'algo suivant : si (jour pair) charger librairie_pair sinon charger librairie_impaire Utiliser_les fonctions_de_la_librairie_chargee Merci pour les listes
[debutant] Librairies dynamiques avec Mandrake
Bonjour, J'aimerais savoir s'il est possible, dans un programme C, de charger dynamiquement des librairies. Je souhaite charger une dll, puis recuperer l'adresse de la fonction qui m'interesse, et executer la fonction. Puis dans le programme, je decharge la librairie, et j'en charge une autre, etc... Est-ce que les librairies dynamiques permettent ce genre de manipulation ? Par analogie, je souhaite transposer ce qui peut se faire avec les DLL sous Windows, sachant que le mecanisme de chargement / dechargement de DLL n'est , parait-il, pas specifique a Winodws. Merci PS : je me rend compte que ma question n'a pas grand chose a voir avec Mandrake, si ce n'est que c'est le systeme sur lequel je veux developper mon application, avec kdevelop. Configuration : Mdk 6.1, noyau 2.2.13 (?) PII 400 64Mo glibc 2.1 -- Aldo Tendron