Bonjour à tous,
Je débute en Delphi et ne maîtrise pas encore toute la finesse de l'environnement de développement et des projets.
Le problème est déjà apparut ici mais je n'ai pas réussi à trouver la solution à mon problème.
- Nous avons un projet compilé sur une machine A qui fonctionnent sur une machine X.
- Lorsque je compile ce projet sur la machine B et que je la lance sur la machine X, au moment de la fermeture de l'application, j'ai un message d'erreur windows classique :
"L'application a rencontré un problème et doit fermer..." et possibilité d'envoyer le rapport à Microsoft.
Voici le rapport d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="UTF-16"?>
<DATABASE>
<EXE NAME="Mon_Application.exe" FILTER="GRABMI_FILTER_PRIVACY">
    <MATCHING_FILE NAME="Mon_Application.exe" SIZE="11473408" CHECKSUM="0x996396FA" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" LINK_DATE="06/19/1992 22:22:17" UPTO_LINK_DATE="06/19/1992 22:22:17" />
</EXE>
<EXE NAME="kernel32.dll" FILTER="GRABMI_FILTER_THISFILEONLY">
    <MATCHING_FILE NAME="kernel32.dll" SIZE="989696" CHECKSUM="0x7D737C09" BIN_FILE_VERSION="5.1.2600.5512" BIN_PRODUCT_VERSION="5.1.2600.5512" PRODUCT_VERSION="5.1.2600.5512" FILE_DESCRIPTION="Windows NT BASE API Client DLL" COMPANY_NAME="Microsoft Corporation" PRODUCT_NAME="Microsoft® Windows® Operating System" FILE_VERSION="5.1.2600.5512 (xpsp.080413-2111)" ORIGINAL_FILENAME="kernel32" INTERNAL_NAME="kernel32" LEGAL_COPYRIGHT="© Microsoft Corporation. All rights reserved." VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x40004" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0xF44A2" LINKER_VERSION="0x50001" UPTO_BIN_FILE_VERSION="5.1.2600.5512" UPTO_BIN_PRODUCT_VERSION="5.1.2600.5512" LINK_DATE="04/14/2008 00:11:24" UPTO_LINK_DATE="04/14/2008 00:11:24" VER_LANGUAGE="English (United States) [0x409]" />
</EXE>
</DATABASE>
Le log généré par Dr Watson :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Application exception occurred:
        App: C:\Mon_Application.exe (pid=3432)
        When: 09/12/2008 @ 15:38:08.586
        Exception number: c0000005 (access violation)
- Pour compliquer un petit peu, il faut savoir que si je compile l'application sur la machine B, elle fonctionne sans aucun problème sur la machine Y (environnement identique à la machine X).
- Et d'autres parts, si je copie l'exécutable "correcte" (compilée sur A) sur la machine B, que je l'éxécute sur B et que je le recopie sur la machine X, le message apparaîtra à nouveau lors de son execution.
Par contre celui-ci est différent :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
<?xml version="1.0" encoding="UTF-16"?>
<DATABASE>
<EXE NAME="Mon_Application.exe" FILTER="GRABMI_FILTER_PRIVACY">
   <MATCHING_FILE NAME="Mon_Application.exe" SIZE="11473408" CHECKSUM="0x996396FA" MODULE_TYPE="WIN32" PE_CHECKSUM="0x0" LINKER_VERSION="0x0" LINK_DATE="06/19/1992 22:22:17" UPTO_LINK_DATE="06/19/1992 22:22:17" />
</EXE>
<EXE NAME="kernel32.dll" FILTER="GRABMI_FILTER_THISFILEONLY">
    <MATCHING_FILE NAME="kernel32.dll" SIZE="989696" CHECKSUM="0x7D737C09" BIN_FILE_VERSION="5.1.2600.5512" BIN_PRODUCT_VERSION="5.1.2600.5512" PRODUCT_VERSION="5.1.2600.5512" FILE_DESCRIPTION="Windows NT BASE API Client DLL" COMPANY_NAME="Microsoft Corporation" PRODUCT_NAME="Microsoft® Windows® Operating System" FILE_VERSION="5.1.2600.5512 (xpsp.080413-2111)" ORIGINAL_FILENAME="kernel32" INTERNAL_NAME="kernel32" LEGAL_COPYRIGHT="© Microsoft Corporation. All rights reserved." VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x40004" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0xF44A2" LINKER_VERSION="0x50001" UPTO_BIN_FILE_VERSION="5.1.2600.5512" UPTO_BIN_PRODUCT_VERSION="5.1.2600.5512" LINK_DATE="04/14/2008 00:11:24" UPTO_LINK_DATE="04/14/2008 00:11:24" VER_LANGUAGE="English (United States) [0x409]" />
</EXE>
<EXE NAME="kernel32.dll" FILTER="GRABMI_FILTER_THISFILEONLY">
    <MATCHING_FILE NAME="kernel32.dll" SIZE="989696" CHECKSUM="0x7D737C09" BIN_FILE_VERSION="5.1.2600.5512" BIN_PRODUCT_VERSION="5.1.2600.5512" PRODUCT_VERSION="5.1.2600.5512" FILE_DESCRIPTION="Windows NT BASE API Client DLL" COMPANY_NAME="Microsoft Corporation" PRODUCT_NAME="Microsoft® Windows® Operating System" FILE_VERSION="5.1.2600.5512 (xpsp.080413-2111)" ORIGINAL_FILENAME="kernel32" INTERNAL_NAME="kernel32" LEGAL_COPYRIGHT="© Microsoft Corporation. All rights reserved." VERFILEDATEHI="0x0" VERFILEDATELO="0x0" VERFILEOS="0x40004" VERFILETYPE="0x2" MODULE_TYPE="WIN32" PE_CHECKSUM="0xF44A2" LINKER_VERSION="0x50001" UPTO_BIN_FILE_VERSION="5.1.2600.5512" UPTO_BIN_PRODUCT_VERSION="5.1.2600.5512" LINK_DATE="04/14/2008 00:11:24" UPTO_LINK_DATE="04/14/2008 00:11:24" VER_LANGUAGE="English (United States) [0x409]" />
</EXE>
</DATABASE>
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Application exception occurred:
        App: C:\Mon_Application.exe (pid=2972)
        When: 10/12/2008 @ 08:39:23.415
        Exception number: c00000fd (stack overflow)
Je suis un peu sec et je cherche des pistes pour résoudre mon problème :
- Est-ce du à des problèmes de version de dll (je vois apparaître kernel32.dll dans les logs)
- De droits d'accès aux fichiers (access violation)
- De programmes malveillants qui modifient les exe sur le poste B
- L'environnement de développement configuré différemment entre la machine A et B

Autre précision, tous les postes sont sous environnement XP Pro.
Merci d'avance pour vos réponses, je vous tiendrai au courant de mes investigations éventuelles.