Erreur 91... au premier chargement d'une appli. [Résolu]

Signaler
Messages postés
198
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
7 janvier 2021
-
Messages postés
198
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
7 janvier 2021
-
Salut à tous,
J'ai une question portant sur le comportement d'un fichier exécutable en VB6, lors de son chargement.
En effet, si j'allume mon micro, que je charge mon projet Vb de 4,4M...

J'ai une erreur 91:

:

Par contre, si je l'ouvre de nouveau... pas de problème !
Je mets ça sur le compte d'une latence de l'anti-virus qui scan l'exécutable en première exécution, puis il mémorise le scan pour la deuxième... mais, ce bug est très déroutant pour les utilisateurs non informés...

Avez-vous déjà vu cela, sur des applis anciennes ou récentes avec l'utilisation d'Avast ?

(Je vais faire le test en désactivant l'anti-virus...)

2 réponses

Messages postés
198
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
7 janvier 2021
6
Salut, me voici de retour...

J'ai repris un test à froid en redémarrant ma machine.
J'ai désactivé Avast, et lancé mon appli.

Tout fonctionne au premier démarrage.

J'en conclue d'après ce test, que l'Anti-virus bloque les OCX lors de leurs chargement pour les scanner, puis après validation laisse l'exécutable charger les OCX sans latences ni opposition d'utilisation.

Du coup, le problème devient plus embêtant, car si les librairies ne sont pas exécutées au moins une fois, l'anti-virus ne les aura pas testé et va les exclure à chaque démarrage à froid.

Même avec une boucle de ralentissement, les OCX devront être chargées ! Et la solution de faire un "Loader" avec les OCXs sans les utiliser ne me réjouit gère.

C'est ballot...

Si vous avez une idée, sans désactiver l'anti-virus... faites le moi savoir pas le biais de ce fil... ce serai sympa.

Merci pour vos futurs conseils.
Messages postés
198
Date d'inscription
mardi 4 juillet 2017
Statut
Membre
Dernière intervention
7 janvier 2021
6
Bonjour... encore.

Bon, c'est en ce penchant sur le problème que l'on a le plus de chance de trouver.

Bon, à priori, la résolution est simple, mais très utile pour les fichiers exécutables de grosse capacité.

Je conseille aussi de l'effectuer préventivement pour vos réalisations.

Ne lancez pas vos applications directement sur un Form, mais sur la Sub Main() en module basic.

placer:

Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Sub Main() 

' Laisser l'Anti-virus faire ses trucs.
Sleep (500)

' Lancement de votre fenêtre d'accueil et effectue un Form_Load
FrmMainWnd.Show

End sub


Le Sleep bloque l'exécution du programme et donc le chargement de la fenêtre, et cela semble suffire à l'anti-virus pour scanner les 4 méga du programme et les OCXs au premier chargement.
Cette fonction a l'avantage de figer complètement le tread d'exécution au niveau système... même le chargement des fichiers de dépendance.

500 semble fonctionner sur une machine rapide.

J'espère que cela vous sera utile...

Bon codage à tous.

Amusez-vous bien.