Librairies Linux avec c++
Hwoarang
-
Kharec Messages postés 4146 Date d'inscription Statut Contributeur Dernière intervention -
Kharec Messages postés 4146 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'aimerais réaliser une application qui instancierait des classes definies dans une librairie .so.
Cela donnerait quelque chose comme :
Fichier principal :
class Base
{
public :
virtual void draw(void);
}
int main()
{
Base *(*createur)(int id);
void *hndl = dlopen("malib", RTLD_LAZY);
createur = dlsym(hndl, "createur");
Base *pBase = createur(0);
pBase->draw();
delete pBase;
Base *pBase = createur(1);
pBase->draw();
delete pBase;
return 0;
}
Fichier librairie :
class Cercle : public Base
{
void draw(void)
{
printf("cercle");
}
}
class Carre: public Base
{
void draw(void)
{
printf("carre");
}
}
Base *createur(int id)
{
if(id == 0)
{
return new Carre();
}
else if(if == 1)
{
return new Cercle();
}
else
{
return NULL;
}
}
Est ce que ce code pourrait marcher sous linux (aux fautes de frappe, inclusions de headers, ... pret) ? Je n'ai malheureusement pas de PC disponible avec ce systeme pour faire le test et je ne connais pas assez bien les librairies dynamiques sous linux pour m'en assurer.
Merci
J'aimerais réaliser une application qui instancierait des classes definies dans une librairie .so.
Cela donnerait quelque chose comme :
Fichier principal :
class Base
{
public :
virtual void draw(void);
}
int main()
{
Base *(*createur)(int id);
void *hndl = dlopen("malib", RTLD_LAZY);
createur = dlsym(hndl, "createur");
Base *pBase = createur(0);
pBase->draw();
delete pBase;
Base *pBase = createur(1);
pBase->draw();
delete pBase;
return 0;
}
Fichier librairie :
class Cercle : public Base
{
void draw(void)
{
printf("cercle");
}
}
class Carre: public Base
{
void draw(void)
{
printf("carre");
}
}
Base *createur(int id)
{
if(id == 0)
{
return new Carre();
}
else if(if == 1)
{
return new Cercle();
}
else
{
return NULL;
}
}
Est ce que ce code pourrait marcher sous linux (aux fautes de frappe, inclusions de headers, ... pret) ? Je n'ai malheureusement pas de PC disponible avec ce systeme pour faire le test et je ne connais pas assez bien les librairies dynamiques sous linux pour m'en assurer.
Merci
A voir également:
- Librairies Linux avec c++
- Linux reader - Télécharger - Stockage
- Backtrack linux - Télécharger - Sécurité
- R-linux - Télécharger - Sauvegarde
- Toutou linux - Télécharger - Systèmes d'exploitation
- Linux mint 22.1 - Accueil - Linux
2 réponses
Essaye un Live CD de Linux, cela ne laissera aucune trace sur ta machine. Regarde ici ==> Obtenir Linux sur CD et aussi là Débuter sous Linux Encore ici ==> Choisir une distribution Linux Et enfin là ^^ Création d'un CDrom de boot sous Linux