Excusez moi mais ce Message n'est peut etre pas a sa place, mais je ne
trouve pas de forum ou poser la question
J'ai repris pour un client un vieux soft MSDOS compilé sous Borland C++
3.1.
Tous ce passait bien jusque maintenant et depuis ce matin (apres avoir
créer un fonction", j'ai au linkage l'erreur suivante
"Group DGROUP exceeds 64K"
Qui pourrait m'aider car L'aide Borland n'est pas tres claire sur ce
message.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Horst Kraemer
On Sun, 26 Oct 2003 10:46:11 +0100, Philippe wrote:
Bonjour
Excusez moi mais ce Message n'est peut etre pas a sa place, mais je ne trouve pas de forum ou poser la question
J'ai repris pour un client un vieux soft MSDOS compilé sous Borland C++ 3.1.
Tous ce passait bien jusque maintenant et depuis ce matin (apres avoir créer un fonction", j'ai au linkage l'erreur suivante "Group DGROUP exceeds 64K"
Qui pourrait m'aider car L'aide Borland n'est pas tres claire sur ce message.
Phil
Si cela s'est produit à l'occasion de la création d'une fonction (sans ajouter des données statiques quelconques) la raison est que tu utilises le modèle de mémoire le plus petit (données+pile+tas+code<dk) appelé TINY compilé par
bcc -mt monprog... (-mt . model TINY)
Dans ce modèle le programme entier se trouve dans DGROUP qui sera adressé par un unique segment de taille 64k. La seule raison de créer un programme par -mt est qu'on veut transformer la fichier .exe sortant en .com. Quand tu compiles simplement par
bcc monprog...
ou
bcc -ms monprog... (modéle SMALL, défault)
alors tu auras un segment entier de 64k pour le code et un autre segment de 64k pour le reste du programme et l'erreur disparaitra.
-- Horst
On Sun, 26 Oct 2003 10:46:11 +0100, Philippe <pgaynon@_free.fr> wrote:
Bonjour
Excusez moi mais ce Message n'est peut etre pas a sa place, mais je ne
trouve pas de forum ou poser la question
J'ai repris pour un client un vieux soft MSDOS compilé sous Borland C++
3.1.
Tous ce passait bien jusque maintenant et depuis ce matin (apres avoir
créer un fonction", j'ai au linkage l'erreur suivante
"Group DGROUP exceeds 64K"
Qui pourrait m'aider car L'aide Borland n'est pas tres claire sur ce
message.
Phil
Si cela s'est produit à l'occasion de la création d'une fonction (sans
ajouter des données statiques quelconques) la raison est que tu
utilises le modèle de mémoire le plus petit
(données+pile+tas+code<dk) appelé TINY compilé par
bcc -mt monprog... (-mt . model TINY)
Dans ce modèle le programme entier se trouve dans DGROUP qui sera
adressé par un unique segment de taille 64k. La seule raison de créer
un programme par -mt est qu'on veut transformer la fichier .exe
sortant en .com. Quand tu compiles simplement par
bcc monprog...
ou
bcc -ms monprog... (modéle SMALL, défault)
alors tu auras un segment entier de 64k pour le code et un autre
segment de 64k pour le reste du programme et l'erreur disparaitra.
On Sun, 26 Oct 2003 10:46:11 +0100, Philippe wrote:
Bonjour
Excusez moi mais ce Message n'est peut etre pas a sa place, mais je ne trouve pas de forum ou poser la question
J'ai repris pour un client un vieux soft MSDOS compilé sous Borland C++ 3.1.
Tous ce passait bien jusque maintenant et depuis ce matin (apres avoir créer un fonction", j'ai au linkage l'erreur suivante "Group DGROUP exceeds 64K"
Qui pourrait m'aider car L'aide Borland n'est pas tres claire sur ce message.
Phil
Si cela s'est produit à l'occasion de la création d'une fonction (sans ajouter des données statiques quelconques) la raison est que tu utilises le modèle de mémoire le plus petit (données+pile+tas+code<dk) appelé TINY compilé par
bcc -mt monprog... (-mt . model TINY)
Dans ce modèle le programme entier se trouve dans DGROUP qui sera adressé par un unique segment de taille 64k. La seule raison de créer un programme par -mt est qu'on veut transformer la fichier .exe sortant en .com. Quand tu compiles simplement par
bcc monprog...
ou
bcc -ms monprog... (modéle SMALL, défault)
alors tu auras un segment entier de 64k pour le code et un autre segment de 64k pour le reste du programme et l'erreur disparaitra.
-- Horst
Christophe Lephay
Philippe wrote:
J'ai repris pour un client un vieux soft MSDOS compilé sous Borland C++ 3.1.
Tous ce passait bien jusque maintenant et depuis ce matin (apres avoir créer un fonction", j'ai au linkage l'erreur suivante "Group DGROUP exceeds 64K"
Qui pourrait m'aider car L'aide Borland n'est pas tres claire sur ce message.
Les applications DOS sont limitées à un ou plusieurs segments de 64K. 1- Choisis le modèle Large dans tes options de compilations (plusieurs segments de code et de données) ; 2- Déplace tes variables globales en les créant sur le tas (avec new).
L'option 1- est certainement suffisante si le programme tourne déjà.
Sinon, effectivement, c'est limite hors sujet...
Chris
Philippe wrote:
J'ai repris pour un client un vieux soft MSDOS compilé sous Borland
C++
3.1.
Tous ce passait bien jusque maintenant et depuis ce matin (apres avoir
créer un fonction", j'ai au linkage l'erreur suivante
"Group DGROUP exceeds 64K"
Qui pourrait m'aider car L'aide Borland n'est pas tres claire sur ce
message.
Les applications DOS sont limitées à un ou plusieurs segments de 64K.
1- Choisis le modèle Large dans tes options de compilations (plusieurs
segments de code et de données) ;
2- Déplace tes variables globales en les créant sur le tas (avec new).
L'option 1- est certainement suffisante si le programme tourne déjà.
J'ai repris pour un client un vieux soft MSDOS compilé sous Borland C++ 3.1.
Tous ce passait bien jusque maintenant et depuis ce matin (apres avoir créer un fonction", j'ai au linkage l'erreur suivante "Group DGROUP exceeds 64K"
Qui pourrait m'aider car L'aide Borland n'est pas tres claire sur ce message.
Les applications DOS sont limitées à un ou plusieurs segments de 64K. 1- Choisis le modèle Large dans tes options de compilations (plusieurs segments de code et de données) ; 2- Déplace tes variables globales en les créant sur le tas (avec new).
L'option 1- est certainement suffisante si le programme tourne déjà.
Sinon, effectivement, c'est limite hors sujet...
Chris
Emmanuel Delahaye
In 'fr.comp.lang.c', Philippe wrote:
Bonjour
Excusez moi mais ce Message n'est peut etre pas a sa place, mais je ne trouve pas de forum ou poser la question
J'ai repris pour un client un vieux soft MSDOS compilé sous Borland C++ 3.1.
Tous ce passait bien jusque maintenant et depuis ce matin (apres avoir créer un fonction", j'ai au linkage l'erreur suivante "Group DGROUP exceeds 64K"
Qui pourrait m'aider car L'aide Borland n'est pas tres claire sur ce message.
<HS> Il existe quelques articles sur le sujet sur le web.
En gros, c'est un problème lié à l'utilisation du processeur x86 en mode réel (mémoire segmentée). Le DGROUP contient non seulement les données statiques (modifables ou non), mais aussi les tableaux initialisés et les chaines. On peut tenter de réduire la taille des statique en utilisant la mémoire dynamique, mais pour les chaines il n'y a pas de solution (activer quand même l'otion 'merge strings').
On peut aussi jouer sur le 'automatic far data threshold' qui placent les données > à une certaine taille en segment séparé.
</HS>
-- -ed- [remove YOURBRA before answering me] The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html C-reference: http://www.dinkumware.com/manuals/reader.aspx?lib=cpp FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
In 'fr.comp.lang.c', Philippe <pgaynon@_free.fr> wrote:
Bonjour
Excusez moi mais ce Message n'est peut etre pas a sa place, mais je
ne
trouve pas de forum ou poser la question
J'ai repris pour un client un vieux soft MSDOS compilé sous Borland
C++
3.1.
Tous ce passait bien jusque maintenant et depuis ce matin (apres
avoir
créer un fonction", j'ai au linkage l'erreur suivante
"Group DGROUP exceeds 64K"
Qui pourrait m'aider car L'aide Borland n'est pas tres claire sur
ce
message.
<HS>
Il existe quelques articles sur le sujet sur le web.
En gros, c'est un problème lié à l'utilisation du processeur x86 en mode réel
(mémoire segmentée). Le DGROUP contient non seulement les données statiques
(modifables ou non), mais aussi les tableaux initialisés et les chaines. On
peut tenter de réduire la taille des statique en utilisant la mémoire
dynamique, mais pour les chaines il n'y a pas de solution (activer quand même
l'otion 'merge strings').
On peut aussi jouer sur le 'automatic far data threshold' qui placent les
données > à une certaine taille en segment séparé.
</HS>
--
-ed- emdelYOURBRA@noos.fr [remove YOURBRA before answering me]
The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html
C-reference: http://www.dinkumware.com/manuals/reader.aspx?lib=cpp
FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
Excusez moi mais ce Message n'est peut etre pas a sa place, mais je ne trouve pas de forum ou poser la question
J'ai repris pour un client un vieux soft MSDOS compilé sous Borland C++ 3.1.
Tous ce passait bien jusque maintenant et depuis ce matin (apres avoir créer un fonction", j'ai au linkage l'erreur suivante "Group DGROUP exceeds 64K"
Qui pourrait m'aider car L'aide Borland n'est pas tres claire sur ce message.
<HS> Il existe quelques articles sur le sujet sur le web.
En gros, c'est un problème lié à l'utilisation du processeur x86 en mode réel (mémoire segmentée). Le DGROUP contient non seulement les données statiques (modifables ou non), mais aussi les tableaux initialisés et les chaines. On peut tenter de réduire la taille des statique en utilisant la mémoire dynamique, mais pour les chaines il n'y a pas de solution (activer quand même l'otion 'merge strings').
On peut aussi jouer sur le 'automatic far data threshold' qui placent les données > à une certaine taille en segment séparé.
</HS>
-- -ed- [remove YOURBRA before answering me] The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html C-reference: http://www.dinkumware.com/manuals/reader.aspx?lib=cpp FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
Emmanuel Delahaye
In 'fr.comp.lang.c', Horst Kraemer wrote:
Si cela s'est produit à l'occasion de la création d'une fonction (sans ajouter des données statiques quelconques) la raison est que tu utilises le modèle de mémoire le plus petit (données+pile+tas+code<dk) appelé TINY compilé par
bcc -mt monprog... (-mt . model TINY)
Pas forcément. Une simple chaine de caractères suffit à exploser le DGROUP, même en modèle large.
-- -ed- [remove YOURBRA before answering me] The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html C-reference: http://www.dinkumware.com/manuals/reader.aspx?lib=cpp FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
In 'fr.comp.lang.c', Horst Kraemer <horst.kraemer@epost.de> wrote:
Si cela s'est produit à l'occasion de la création d'une fonction (sans
ajouter des données statiques quelconques) la raison est que tu
utilises le modèle de mémoire le plus petit
(données+pile+tas+code<dk) appelé TINY compilé par
bcc -mt monprog... (-mt . model TINY)
Pas forcément. Une simple chaine de caractères suffit à exploser le DGROUP,
même en modèle large.
--
-ed- emdelYOURBRA@noos.fr [remove YOURBRA before answering me]
The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html
C-reference: http://www.dinkumware.com/manuals/reader.aspx?lib=cpp
FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
Si cela s'est produit à l'occasion de la création d'une fonction (sans ajouter des données statiques quelconques) la raison est que tu utilises le modèle de mémoire le plus petit (données+pile+tas+code<dk) appelé TINY compilé par
bcc -mt monprog... (-mt . model TINY)
Pas forcément. Une simple chaine de caractères suffit à exploser le DGROUP, même en modèle large.
-- -ed- [remove YOURBRA before answering me] The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html C-reference: http://www.dinkumware.com/manuals/reader.aspx?lib=cpp FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
Emmanuel Delahaye
In 'fr.comp.lang.c', "Christophe Lephay" wrote:
J'ai repris pour un client un vieux soft MSDOS compilé sous Borland C++ 3.1.
Tous ce passait bien jusque maintenant et depuis ce matin (apres avoir créer un fonction", j'ai au linkage l'erreur suivante "Group DGROUP exceeds 64K"
Sinon, effectivement, c'est limite hors sujet...
C'est 'carrément' hors-sujet! Les gens du monde 32-bit flat doivent se demander de quoi on parle...
-- -ed- [remove YOURBRA before answering me] The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html C-reference: http://www.dinkumware.com/manuals/reader.aspx?lib=cpp FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
In 'fr.comp.lang.c', "Christophe Lephay" <christophe-lephay@wanadoo.fr>
wrote:
J'ai repris pour un client un vieux soft MSDOS compilé sous Borland
C++
3.1.
Tous ce passait bien jusque maintenant et depuis ce matin (apres avoir
créer un fonction", j'ai au linkage l'erreur suivante
"Group DGROUP exceeds 64K"
Sinon, effectivement, c'est limite hors sujet...
C'est 'carrément' hors-sujet! Les gens du monde 32-bit flat doivent se
demander de quoi on parle...
--
-ed- emdelYOURBRA@noos.fr [remove YOURBRA before answering me]
The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html
C-reference: http://www.dinkumware.com/manuals/reader.aspx?lib=cpp
FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/
J'ai repris pour un client un vieux soft MSDOS compilé sous Borland C++ 3.1.
Tous ce passait bien jusque maintenant et depuis ce matin (apres avoir créer un fonction", j'ai au linkage l'erreur suivante "Group DGROUP exceeds 64K"
Sinon, effectivement, c'est limite hors sujet...
C'est 'carrément' hors-sujet! Les gens du monde 32-bit flat doivent se demander de quoi on parle...
-- -ed- [remove YOURBRA before answering me] The C-language FAQ: http://www.eskimo.com/~scs/C-faq/top.html C-reference: http://www.dinkumware.com/manuals/reader.aspx?lib=cpp FAQ de f.c.l.c : http://www.isty-info.uvsq.fr/~rumeau/fclc/