A partir de Windows 7 et 2008 Server, et en particulier dans le cas de machines 64 bits, mieux vaut utiliser Process Monitor via la procédure suivante : procédure process monitor.doc

 

Une possibilité qui empêcherait une application générée par Adélia Studio de fonctionner est que l'initialisation de l'exécution échoue (au moment du chargement des dll dépendantes).

Pour vérifier cela, il faut "profiler" le chargement des dll grâce à l'outil Depends.exe normalement fourni avec Visual Studio.
ATTENTION : il faut la version 32 bits de Depends.exe car Adélia Studio ne génère que des applications 32 bits.
Si vous ne l'avez pas, vous pouvez demander le lien de téléchargement à la hotline.
Dézippez dans un nouveau répertoire et lancez depends.exe

Utilisation de Depends.exe :

Dans File/Open, sélectionnez votre exe (il peut y avoir un message d'erreur, poursuivez, ce message apparaîtra dans la trace finale)
Dans Profile/Start profiling... saisissez les paramètres de votre programme, s'il en a.
Cochez la case "Use full paths when logging file names" pour avoir le chemin complet des dll chargées :

Faites Ok.

A la fin du rapport, regardez avec attention les dernières erreurs. Il est fort possible que votre problème de non exécution soit lié à une de ces erreurs.
Pour sauver le rapport, par exemple pour l'envoyer à la hotline, utiliser l'option File/Save As...

Exemple d'erreur déjà rencontrée par quelques clients :

Fin de rapport de Depends.exe :

Loaded "LGSCROLL.DLL" at address 0x10100000. Successfully hooked module.
DllMain(0x10100000, DLL_PROCESS_ATTACH, 0x00000000) in "LGSCROLL.DLL" called.
Unloaded "LGSCROLL.DLL" at address 0x10100000.
LoadLibraryExW("C:\Program Files\Logitech\SetPoint\lgscroll.dll", 0x00000000, LOAD_WITH_ALTERED_SEARCH_PATH) returned NULL. Error: Récurrence trop profonde; la pile a débordé (1001).
LoadLibraryExW("C:\Program Files\Logitech\SetPoint\lgscroll.dll", 0x00000000, LOAD_WITH_ALTERED_SEARCH_PATH) called from "USER32.DLL" at address 0x7E3A8055.
Loaded "LGSCROLL.DLL" at address 0x10100000. Successfully hooked module.
DllMain(0x10100000, DLL_PROCESS_ATTACH, 0x00000000) in "LGSCROLL.DLL" called.
Second chance exception 0xC0000005 (Access Violation) occurred in "NTDLL.DLL" at address 0x7C9251FE.

Dans ce rapport, on s'aperçoit que lgscroll.dll fait exploser la pile d'exécution, ce qui est fatal à l'application.
Pour ce type de problème, externe à Adélia, il est nécessaire de chercher sur internet pour voir si la société éditrice du logiciel (ici Logitech pour son logiciel SetPointer) n'a pas une solution ou voir si quelqu'un a eu le même problème et a eu une réponse pertinente.
Au pire, il faut désactiver ce logiciel (ici, arrêter un service SetPointer ou désenregistrer la dll : regsvr32 -u lgscroll.dll)

Autre cas : On obtient l'erreur "Runtime error" "R6030 - CRT not initialized" :

Résolution de l'erreur R6030 - CRT not intialized : utiliser un runtime Adélia Studio V12 ou plus

Ce problème semble être lié aux programmes compilés avec une version Visual Studio 2008 du compilateur qui ont donc besoin du Runtime Microsoft Visual C++ 2008 Redistributable.
Vérifier d'abord que ce runtime est bien installé sur votre machine (Dans Ajout/Suppression de programme).

Utilisez la procédure décrite ci-dessus avec l'outil Depends.exe.
En effet il peut s'agir d'un conflit avec un autre logiciel installé sur la machine.
Dans le rapport du Depends il n'y a pas forcément d'erreur significative.
Regarder les dll qui sont chargées et qui vous paraissent suspectes. Généralement ce sont des dll qui ne se trouvent pas dans le répertoire système de la machine (c:\windows\system32).

- Chez un client le logiciel IMBOOSTER (éditeur IMINENT fournit des émoticônes pour messagerie) provoqué l'erreur.
Dans le rapport on pouvait voir que l'une de ses dll était chargée mais sans provoquer d'erreur :
Loaded "c:\program files\iminent\imbooster\IMINENT.WINCORE.DLL" at address 0x01360000. Successfully hooked module.

Il suffit ensuite de le désactiver via MSCONFIG.exe ou de le désinstaller.

- Autre cas de l'erreur R6030, cette fois avec CITRIX : il apparaît dans le rapport du depends.exe qu'il y a un problème de hooking avec CSMA_LDR.dll. La solution 2) décrite dans http://blogs.technet.com/b/virtualworld/archive/2010/07/07/r6030-crt-not-initialized.aspx d'exclure l'application générée du hooking a résolu le problème.

- Autre cas :

- Applications à désinstaller : Applian FLV Player 2.0 ou FreeCorder ou PDFForge toolbar
- Plus problématique : Lenovo Password Manager (gestion des empreintes comme mot de passe sur les portables LENOVO) peut conduire au même problème. Seule solution pour le moment : soit le désinstaller soit l'arrêter (depuis la tray icon)

Articles connexes