merci, c'est bien ce que je pensais alors, j'ai pas le choix!!!!!!!!!! snifffffff
"Bastien" a écrit dans le message news:
Bonjour,
Si l'objet a ete cree dans la dll A il doit etre detruit dans la dll A. (car A et B ne partage pas la meme moire).
Tu dois rajouter une fonction a la dll A qui va pouvoir etre appelee de B pour detruire proprement l'objet.
Voila, j 'espere que tu m'as compris.
Note : ce n'est pas vraiment un probleme de c++.
James Kanze
(Bastien) writes:
|> Si l'objet a ete cree dans la dll A il doit etre detruit dans la dll |> A. (car A et B ne partage pas la meme moire).
Ça dépend comment il a fait l'édition de liens. Normalement, les parties système sont dans un DLL à part, de façon à ce qu'elles soient partagées par tout le monde.
|> Tu dois rajouter une fonction a la dll A qui va pouvoir etre appelee |> de B pour detruire proprement l'objet.
C'est en effet plus propre.
-- James Kanze Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
bastien.armand@wanadoo.fr (Bastien) writes:
|> Si l'objet a ete cree dans la dll A il doit etre detruit dans la dll
|> A. (car A et B ne partage pas la meme moire).
Ça dépend comment il a fait l'édition de liens. Normalement,
les parties système sont dans un DLL à part, de façon à ce
qu'elles soient partagées par tout le monde.
|> Tu dois rajouter une fonction a la dll A qui va pouvoir etre appelee
|> de B pour detruire proprement l'objet.
C'est en effet plus propre.
--
James Kanze
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
|> Si l'objet a ete cree dans la dll A il doit etre detruit dans la dll |> A. (car A et B ne partage pas la meme moire).
Ça dépend comment il a fait l'édition de liens. Normalement, les parties système sont dans un DLL à part, de façon à ce qu'elles soient partagées par tout le monde.
|> Tu dois rajouter une fonction a la dll A qui va pouvoir etre appelee |> de B pour detruire proprement l'objet.
C'est en effet plus propre.
-- James Kanze Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
syn-ack
tu veux parler de segment partagé?
mon probleme c'est que niveau estetique, c'est pas terrible d'avoir ca:
dll A: (ca c'est mon texture manager) liste() { unsigned char *g=0; B->chargeimage(&b); ... B->desallouememoire(&b); }
desallouememoire(unsigned char **pixel) // c'est pas terrible surtout dans un sdk {
delete [] *pixel;
}
"James Kanze" a écrit dans le message news:
(Bastien) writes:
|> Si l'objet a ete cree dans la dll A il doit etre detruit dans la dll |> A. (car A et B ne partage pas la meme moire).
Ça dépend comment il a fait l'édition de liens. Normalement, les parties système sont dans un DLL à part, de façon à ce qu'elles soient partagées par tout le monde.
|> Tu dois rajouter une fonction a la dll A qui va pouvoir etre appelee |> de B pour detruire proprement l'objet.
C'est en effet plus propre.
-- James Kanze Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
tu veux parler de segment partagé?
mon probleme c'est que niveau estetique, c'est pas terrible d'avoir ca:
dll A: (ca c'est mon texture manager)
liste()
{
unsigned char *g=0;
B->chargeimage(&b);
...
B->desallouememoire(&b);
}
desallouememoire(unsigned char **pixel) // c'est pas terrible surtout dans
un sdk
{
delete [] *pixel;
}
"James Kanze" <kanze@gabi-soft.fr> a écrit dans le message news:
8665agcp4w.fsf@lns-vlq-36-82-254-159-185.adsl.proxad.net...
bastien.armand@wanadoo.fr (Bastien) writes:
|> Si l'objet a ete cree dans la dll A il doit etre detruit dans la dll
|> A. (car A et B ne partage pas la meme moire).
Ça dépend comment il a fait l'édition de liens. Normalement,
les parties système sont dans un DLL à part, de façon à ce
qu'elles soient partagées par tout le monde.
|> Tu dois rajouter une fonction a la dll A qui va pouvoir etre appelee
|> de B pour detruire proprement l'objet.
C'est en effet plus propre.
--
James Kanze
Conseils en informatique orientée objet/
Beratung in objektorientierter Datenverarbeitung
9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
desallouememoire(unsigned char **pixel) // c'est pas terrible surtout dans un sdk {
delete [] *pixel;
}
"James Kanze" a écrit dans le message news:
(Bastien) writes:
|> Si l'objet a ete cree dans la dll A il doit etre detruit dans la dll |> A. (car A et B ne partage pas la meme moire).
Ça dépend comment il a fait l'édition de liens. Normalement, les parties système sont dans un DLL à part, de façon à ce qu'elles soient partagées par tout le monde.
|> Tu dois rajouter une fonction a la dll A qui va pouvoir etre appelee |> de B pour detruire proprement l'objet.
C'est en effet plus propre.
-- James Kanze Conseils en informatique orientée objet/ Beratung in objektorientierter Datenverarbeitung 9 place Sémard, 78210 St.-Cyr-l'École, France +33 (0)1 30 23 00 34
Arnaud Debaene
syn-ack wrote:
tu veux parler de segment partagé?
Non : l'idée est de lier tous tes modules (exe et dll) a une même version de la CRT, une version DLL. de cette manière, on a une seule version de l'allocateur mémoire pour tout le programme. Dans ces conditions, tu peux faire les allocations dans un module et les désallocations dans un autre. Voire un groupe dédié à ton compilateur ou à Windows pour les détails.
Arnaud
syn-ack wrote:
tu veux parler de segment partagé?
Non : l'idée est de lier tous tes modules (exe et dll) a une même version de
la CRT, une version DLL. de cette manière, on a une seule version de
l'allocateur mémoire pour tout le programme. Dans ces conditions, tu peux
faire les allocations dans un module et les désallocations dans un autre.
Voire un groupe dédié à ton compilateur ou à Windows pour les détails.
Non : l'idée est de lier tous tes modules (exe et dll) a une même version de la CRT, une version DLL. de cette manière, on a une seule version de l'allocateur mémoire pour tout le programme. Dans ces conditions, tu peux faire les allocations dans un module et les désallocations dans un autre. Voire un groupe dédié à ton compilateur ou à Windows pour les détails.