Mémoire insuffisante (erreur d'execution 7)

Signaler
Messages postés
1471
Date d'inscription
mardi 5 février 2002
Statut
Membre
Dernière intervention
20 octobre 2014
-
Messages postés
232
Date d'inscription
mercredi 25 octobre 2000
Statut
Membre
Dernière intervention
5 octobre 2012
-
je suis en train de developper une application en VB6.
tout se passe bien lorsque j'execute mon programme depuis VB. Mais quand j'execute l'exe, j'ai une erreur d'execution 7 (memoire insuffisante) au demarrage de ma Sub Main.
L'erreur disparait si je commence mon programme par une msgbox... ????

Est ce que Qq'un pourrait eclairer ma lanterne sur ce phenomene plutot "paranormal" ?

Merci

++

BasicInstinct

10 réponses

Messages postés
14726
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
28 septembre 2020
144
L'informatique à sa raison ke la raison ne connait point. (parodie d'une citation de Blaise Pascal 1623-1662)

Sinon, g pas d'autres solution



Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)

Une question se pose sur le forum, pas en privé


NH
Messages postés
216
Date d'inscription
mardi 15 juin 2004
Statut
Membre
Dernière intervention
26 février 2006
1
Si il y a des variables, vaut mieux les déclarer explicitement : j'ai
déja vu un programme ou la valeur de variables déclarés implicitement
se mélangés sans raison. Alors une erreur d'execution pourquoi pas...

Messages postés
216
Date d'inscription
mardi 15 juin 2004
Statut
Membre
Dernière intervention
26 février 2006
1
Si il y a des variables, vaut mieux les déclarer explicitement : j'ai
déja vu un programme ou la valeur de variables déclarés implicitement
se mélangés sans raison. Alors une erreur d'execution pourquoi pas...

Messages postés
1471
Date d'inscription
mardi 5 février 2002
Statut
Membre
Dernière intervention
20 octobre 2014
10
pas mieux... je suis en option explicit. Et j'ai toujours mon erreur sur l'exe.

BasicInstinct
Messages postés
1471
Date d'inscription
mardi 5 février 2002
Statut
Membre
Dernière intervention
20 octobre 2014
10
si je supprime la sub Main, j'ai une erreur system &h80070583(-2147023485) la classe n'existe pas.

Si je supprime mon fichier appli.exe.manifest, tout fonctionne normalement.

BasicInstinct
Messages postés
1471
Date d'inscription
mardi 5 février 2002
Statut
Membre
Dernière intervention
20 octobre 2014
10
ca y est j'ai trouvé :
faut rajouter ca au code:

Private Type tagInitCommonControlsEx
lngSize As Long
lngICC As Long
End Type
Private Declare Function InitCommonControlsEx Lib "comctl32.dll" _
(iccex As tagInitCommonControlsEx) As Boolean
Private Const ICC_USEREX_CLASSES = &H200


Public Function InitCommonControlsVB() As Boolean
On Error Resume Next
Dim iccex As tagInitCommonControlsEx
' Ensure CC available:
With iccex
.lngSize = LenB(iccex)
.lngICC = ICC_USEREX_CLASSES
End With
InitCommonControlsEx iccex InitCommonControlsVB (Err.Number 0)
On Error GoTo 0
End Function

Public Sub Main()
InitCommonControlsVB
....
end sub

par contre ca plante lorsque je quitte mon appli :


Projet1.exe a rencontré un problème et doit fermer. Nous ....



BasicInstinct
Messages postés
216
Date d'inscription
mardi 15 juin 2004
Statut
Membre
Dernière intervention
26 février 2006
1
En effet, les manifest ont tendance a provoquer des erreurs
Messages postés
22
Date d'inscription
mercredi 25 septembre 2002
Statut
Membre
Dernière intervention
23 avril 2009

pour moi sa marche nikel merci

Raver2046 & hypnowarez.org rulezz
Messages postés
27
Date d'inscription
mercredi 25 juillet 2007
Statut
Membre
Dernière intervention
12 décembre 2011
1
Slt,au 16/05/2005 vous avez eu le problème du Message (Erreur N°7 : Mémoire insuffisante).aujourd'hui j'ai le même problème
j'ai développé une application en VB6 sous une base de données SQL Server et quant j'installe mon exe sur certaine machine je reçoit le message dit.
la solution que vous avez trouvé c'était d'ajouter le code suivant :

Private Type tagInitCommonControlsEx
   lngSize As Long
   lngICC As Long
End Type
Private Declare Function InitCommonControlsEx Lib "comctl32.dll" _
   (iccex As tagInitCommonControlsEx) As Boolean
Private Const ICC_USEREX_CLASSES = &H200
Public Function InitCommonControlsVB() As Boolean
   On Error Resume Next
   Dim iccex As tagInitCommonControlsEx
   ' Ensure CC available:
   With iccex
       .lngSize = LenB(iccex)
       .lngICC = ICC_USEREX_CLASSES
   End With
   InitCommonControlsEx iccex   InitCommonControlsVB (Err.Number 0)
   On Error GoTo 0
End Function

Public Sub Main()
InitCommonControlsVB
....
end sub

Moi aussi la sub Main c'est la prmière Procédure qui s'éxécute au lancement de mon projet.Vous pouvez m'expliquer pourquoi vous avez ajouté ce code à votre programme .Aidez moi s'il vous plaît c'est très urgent!!!!
Messages postés
232
Date d'inscription
mercredi 25 octobre 2000
Statut
Membre
Dernière intervention
5 octobre 2012

Salut VBkenza,

Je crois que c'est utilise lorsque tu utilise un Manifest qui passe les contrôles standard de VB en design XP et afin de s'assurer que tous les élèment de ton programme aient le style XP (comme les combobox), il faut lancé cette procédure.
A+