Accueil > Forum > > > > Application developpée sous W2k en Delphi 5, et reprise en Delphi 7 pour XP
Application developpée sous W2k en Delphi 5, et reprise en Delphi 7 pour XP
vendredi 10 octobre 2008 à 12:25:28 |
Application developpée sous W2k en Delphi 5, et reprise en Delphi 7 pour XP

gremlins13
|
Bonjour, 1 semaine que je galère pour rendre compatibles sous XP des applications qui tournaient sans pb sous W2k ou W98SE, et développées en Delphi5. Ces applications utilisent différentes Dll développées ici aussi en interne. Ces app refusent de démarrer sous XP, aucun message, aucune erreur, elles 'freezent' tout simplement dès le lancement. Je reprends ces développement avec Delphi7 sous XP, histoire de recréer ces exécutables sur les OS de destination, mais je ne parviens pas à cerner l'origine du pb j(ai positionné un max de points d'arret mais apparemment, l'exécution n'arrive même pas jusque là, donc j'en concluerais à un pb de gestion de mémoire. Les applis utilisent 'Sharemem' en première position dans les Uses des projets. J'ai également tenté de remplacer Sharemem par FastSharemem mais sans meilleur résultat. Je voudrais au moins comprendre le pb avant de trouver une solution... Je suis vraiment en galère, tout devant migrer vers XP dans le mois qui vient. Hervé
|
|
vendredi 10 octobre 2008 à 19:30:25 |
Re : Application developpée sous W2k en Delphi 5, et reprise en Delphi 7 pour XP

rt15
|
Salut, Zarbi. Delphi 7 incompatible avec Vista XP ce serait une première. Et XP et 2000 ont une architecture vraiment semblable. Sharemem est assez peu utilisée (surtout du fait que cela rend les dll incompatible avec les .exe des autres langages), mais quand même, de là à ce viander...  Pour le coup des points d'arrêt qui ne passe pas... Les .exe et .dll ont un point d'entrée exécuté par le loader (Appelons ça un main pour les .exe et un dllmain pour une dll) de Windows quand il charge un .exe en mémoire. Si tu ne parviens pas à mettre en place un point d'arrêt dans ton .exe, cela peut être dû au fait qu'une dll ne parvienne pas à se charger à cause d'un mauvais code dans son dllmain. Néanmoins il me semble que dans ce cas là, windows affiche un message explicite, style le module ne peut être chargé, ou est introuvable. Pour tester l'initialisation de tes dlls, tu peux faire un test relativement simple. Dans une console tu tape : ntsd MonExeATester.exe En faisant l'hypothèse que la console puisse trouver ton .exe. Cela t'affichera la liste des dlls chargées et l'exécution s'arrêtera avant l'exécution du point d'entrée de l'exe. ntsd devrait te donner la main en affichant ça : ntdll!DbgBreakPoint: 7c911230 cc int 3 0:000> Pour complèter le test tu peux aller jusqu'au point d'entrée du .exe en tapant : !dh NomDuModule.exe Tu peux y trouver le point d'entrée et l'adresse de l'image : 739D address of entry point 1000 base of code ----- new ----- 01000000 image base
Tu met un point d'arrêt avec la commande bp, à l'adresse du point d'entrée. Pour avoir l'adresse du point d'entrée, il suffit d'additionner l'adresse de l'image et du point d'entrée. Ici : bp 0100739D Puis tu lance l'exécution avec g : g ntsd devrait te rendre la main à l'adresse du main. Tu peux éventuellement poursuivre l'exécution avec g... Mais je suppose que ton programme aura merdé avant. Bon courage.
|
|
lundi 13 octobre 2008 à 08:52:08 |
Re : Application developpée sous W2k en Delphi 5, et reprise en Delphi 7 pour XP

gremlins13
|
Je vais passer mon lundi à tenter cette solution.... en priant que cela me donne au moins une idée de la piste à suivre. Un autre forum m'a donné une autre idée, celle de l'appel à des api windows qui se feraient par leur numero et pas par leur nom. Comme certains numéros ont changé parait-il entre w2k et XP... Je vais tester tout ça...
Merci à plus
Hervé
|
|
lundi 13 octobre 2008 à 09:35:50 |
Re : Application developpée sous W2k en Delphi 5, et reprise en Delphi 7 pour XP

gremlins13
|
Rt15, Salut,
Je tente de réaliser ce que tu préconise en commande console, j'ai bien une réponse au ntsd, mais apres !! ça se complique : Voilà ce que j'obtiens
ntdll!DbgBreakPoint: 7c911230 cc int 3 0:000> !dh x:launch.exe *** WARNING: Unable to verify checksum for image00400000 *** ERROR: Module load completed but symbols could not be loaded for image00400000 *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\WINDOWS\system32\kernel32.dll - *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\WINDOWS\system32\user32.dll- *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\WINDOWS\system32\GDI32.dll- *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\W INDOWS\system32\advapi32.dll - *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\W INDOWS\system32\RPCRT4.dll - *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\W INDOWS\system32\oleaut32.dll - *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\W INDOWS\system32\msvcrt.dll - *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\W INDOWS\system32\ole32.dll - *** ERROR: Symbol file could not be found. Defaulted to export symbols for X:\b orlndmm.dll - *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\W INDOWS\system32\version.dll - *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\W INDOWS\system32\comctl32.dll - *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\W INDOWS\system32\winspool.drv - *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\W INDOWS\system32\shell32.dll - *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\W INDOWS\system32\SHLWAPI.dll - *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\W INDOWS\system32\comdlg32.dll - *** WARNING: Unable to verify checksum for X:\AtaDllPrint.dll *** ERROR: Symbol file could not be found. Defaulted to export symbols for X:\A taDllPrint.dll - *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\W INDOWS\system32\olepro32.dll - *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\W INDOWS\system32\imm32.dll - *** WARNING: Unable to verify checksum for X:\AtaDllUser.dll *** ERROR: Symbol file could not be found. Defaulted to export symbols for X:\A taDllUser.dll - *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\W INDOWS\system32\winmm.dll - 0:000>
Hervé
|
|
lundi 13 octobre 2008 à 09:43:43 |
Re : Application developpée sous W2k en Delphi 5, et reprise en Delphi 7 pour XP
|
lundi 13 octobre 2008 à 10:10:55 |
Re : Application developpée sous W2k en Delphi 5, et reprise en Delphi 7 pour XP

rt15
|
Petites précisions : Les messages d'erreurs que tu as ici sont normales : tu ne dispose effectivement pas des symboles de débogage des modules mentionnés. Mais ce n'est pas pas un problème. Tu as l'air d'utiliser 3 dlls perso : orlndmm.dll AtaDllPrint.dll AtaDllUser.dll Il n'en manque pas ? Un tuto sur ntsd.
|
|
lundi 13 octobre 2008 à 11:25:57 |
Re : Application developpée sous W2k en Delphi 5, et reprise en Delphi 7 pour XP

gremlins13
|
Non, il n'en manque pas, il y en avait une quatrieme, que j'ai disséquée en unités incluses dans des uses, il en reste 2 AtaDllPrint, ATADlluser. Borlndll est en fait une dll Borland qui est ajoutée automatiquement pour pouvoir utiliser sharemem entre autre
Hervé
|
|
lundi 13 octobre 2008 à 11:29:39 |
Re : Application developpée sous W2k en Delphi 5, et reprise en Delphi 7 pour XP

gremlins13
|
Voici le resultat :
0:000> !dh image00400000
File Type: EXECUTABLE IMAGE FILE HEADER VALUES 14C machine (i386) 9 number of sections 2A425E19 time date stamp Sat Jun 20 00:22:17 1992
0 file pointer to symbol table 0 number of symbols E0 size of optional header 818E characteristics Executable Line numbers stripped Symbols stripped Bytes reversed 32 bit word machine
OPTIONAL HEADER VALUES 10B magic # 2.25 linker version 1A6000 size of code 5E35B6 size of initialized data 0 size of uninitialized data 1A6E20 address of entry point 1000 base of code ----- new ----- 00400000 image base 1000 section alignment 200 file alignment 2 subsystem (Windows GUI) 4.00 operating system version 0.00 image version 4.00 subsystem version 78F000 size of image 400 size of headers 0 checksum 00100000 size of stack reserve 00004000 size of stack commit 00100000 size of heap reserve 00001000 size of heap commit 0 [ 0] address [size] of Export Directory 1AC000 [ 2E04] address [size] of Import Directory 1D2000 [ 69A00] address [size] of Resource Directory 0 [ 0] address [size] of Exception Directory 0 [ 0] address [size] of Security Directory 1B1000 [ 200B0] address [size] of Base Relocation Directory 23C000 [ 1] address [size] of Debug Directory 0 [ 0] address [size] of Description Directory 0 [ 0] address [size] of Special Directory 1B0000 [ 18] address [size] of Thread Storage Directory 0 [ 0] address [size] of Load Configuration Directory 0 [ 0] address [size] of Bound Import Directory 0 [ 0] address [size] of Import Address Table Directory 0 [ 0] address [size] of Reserved Directory 0 [ 0] address [size] of Reserved Directory 0 [ 0] address [size] of Reserved Directory
SECTION HEADER #1 CODE name 1A5ED0 virtual size 1000 virtual address 1A6000 size of raw data 400 file pointer to raw data 0 file pointer to relocation table 0 file pointer to line numbers 0 number of relocations 0 number of line numbers 60000020 flags Code (no align specified) Execute Read
SECTION HEADER #2 DATA name 3B0C virtual size 1A7000 virtual address 3C00 size of raw data 1A6400 file pointer to raw data 0 file pointer to relocation table 0 file pointer to line numbers 0 number of relocations 0 number of line numbers C0000040 flags Initialized Data (no align specified) Read Write
SECTION HEADER #3 BSS name FA1 virtual size 1AB000 virtual address 0 size of raw data 0 file pointer to raw data 0 file pointer to relocation table 0 file pointer to line numbers 0 number of relocations 0 number of line numbers C0000000 flags (no align specified) Read Write
SECTION HEADER #4 .idata name 2E04 virtual size 1AC000 virtual address 3000 size of raw data 1AA000 file pointer to raw data 0 file pointer to relocation table 0 file pointer to line numbers 0 number of relocations 0 number of line numbers C0000040 flags Initialized Data (no align specified) Read Write
SECTION HEADER #5 .tls name 10 virtual size 1AF000 virtual address 0 size of raw data 0 file pointer to raw data 0 file pointer to relocation table 0 file pointer to line numbers 0 number of relocations 0 number of line numbers C0000000 flags (no align specified) Read Write
SECTION HEADER #6 .rdata name 18 virtual size 1B0000 virtual address 200 size of raw data 1AD000 file pointer to raw data 0 file pointer to relocation table 0 file pointer to line numbers 0 number of relocations 0 number of line numbers 50000040 flags Initialized Data Shared (no align specified) Read Only
SECTION HEADER #7 .reloc name 200B0 virtual size 1B1000 virtual address 20200 size of raw data 1AD200 file pointer to raw data 0 file pointer to relocation table 0 file pointer to line numbers 0 number of relocations 0 number of line numbers 50000040 flags Initialized Data Shared (no align specified) Read Only
SECTION HEADER #8 .rsrc name 69A00 virtual size 1D2000 virtual address 69A00 size of raw data 1CD400 file pointer to raw data 0 file pointer to relocation table 0 file pointer to line numbers 0 number of relocations 0 number of line numbers 50000040 flags Initialized Data Shared (no align specified) Read Only
SECTION HEADER #9 .debug name 552BB6 virtual size 23C000 virtual address 552BB6 size of raw data 236E00 file pointer to raw data 0 file pointer to relocation table 0 file pointer to line numbers 0 number of relocations 0 number of line numbers 50000040 flags Initialized Data Shared (no align specified) Read Only
Debug Directories(0) Type Size Address Pointer
0:000>
Hervé
|
|
lundi 13 octobre 2008 à 11:40:30 |
Re : Application developpée sous W2k en Delphi 5, et reprise en Delphi 7 pour XP

gremlins13
|
puis l'execution à l'adresse 005A6E20 :
0:000> bp 005A6E20 0:000> g ModLoad: 762f0000 76300000 C:\WINDOWS\system32\WINSTA.dll ModLoad: 6fee0000 6ff34000 C:\WINDOWS\system32\NETAPI32.dll ModLoad: 77390000 77493000 C:\WINDOWS\WinSxS\x86_Microsoft.Win rols_6595b64144ccf1df_6.0.2600.2982_x-ww_ac3f9c03\comctl32.dll ModLoad: 5de20000 5de28000 C:\WINDOWS\system32\rdpsnd.dll ModLoad: 76ba0000 76bab000 C:\WINDOWS\system32\PSAPI.DLL ModLoad: 74690000 746db000 C:\WINDOWS\system32\MSCTF.dll ModLoad: 71a60000 71a72000 C:\WINDOWS\system32\MPR.dll ModLoad: 75ef0000 75ef7000 C:\WINDOWS\System32\drprov.dll ModLoad: 71b70000 71b7e000 C:\WINDOWS\System32\ntlanman.dll ModLoad: 71c30000 71c47000 C:\WINDOWS\System32\NETUI0.dll ModLoad: 71bf0000 71c30000 C:\WINDOWS\System32\NETUI1.dll ModLoad: 71be0000 71be7000 C:\WINDOWS\System32\NETRAP.dll ModLoad: 71b50000 71b63000 C:\WINDOWS\System32\SAMLIB.dll ModLoad: 75f00000 75f09000 C:\WINDOWS\System32\davclnt.dll ModLoad: 77b50000 77b72000 C:\WINDOWS\system32\appHelp.dll ModLoad: 76f80000 76fff000 C:\WINDOWS\system32\CLBCATQ.DLL ModLoad: 77000000 770d4000 C:\WINDOWS\system32\COMRes.dll
Et l'application reste plantée là .... :(
|
|
lundi 13 octobre 2008 à 12:27:56 |
Re : Application developpée sous W2k en Delphi 5, et reprise en Delphi 7 pour XP
|
Cette discussion est classée dans : pb, application, xp, delphi, w2k
Répondre à ce message
Sujets en rapport avec ce message
pb avec bd access [ par drew00 ]
bonjour,j ai realise une application sous delphi qui fait appel a une base de donnees access.J'ai installé mon application sur un autre poste qui ne p
Rave Report [ par fabr1 ]
fab1,J'ai un pb avec Delphi et Rave Report.Lorsque je lance un report depuis mon application Delphi, j'ai un problème lorsque je quitte mon applicatio
pb delphi et paradox? [ par kadim69 ]
salut tout le monde, je suis entrain de dvpé une application de gestion sous delphi 6 entreprise avec une base paradox local via bde. le pb qd je lanc
Traducteur Delphi please ! [ par minipod ]
Un sympatique delphinaute m'a dit de faire ceci pour résoudre mon problème. Le problème c'est que je sais pas faire çà en Delphi. Est-ce que quelqu'un
Curseur [ par MAsterC ]
Bonjour!Delphiprog avait déja répondu a cette question au niveau des changements de curseurs pour Delphi!Regarder :Tu sauvegardes le curseur dans un f
Document word dans application Delphi [ par Kenny ]
Salut,Je cherche à ouvrir l'application word dans un formulaire DELPHI.En fait, je développe une partie d'un programme développé en DELPHI et je dois
Overlay des unité dans Delphi [ par nc2ufr ]
Bonjour à tous.Je me trouve confronter au problème suivant et je cherche désespérément une solution simple.Je travaille sur une application assez volu
A propos des controles clavier [ par facosh ]
Bonjour a toutes et a tous.Tout d'abord, je vais situer dans quel cadre je veux utiliser ce que je veux demander. Je veux réaliser une application en
comment "locker" le tiroir d'un cd-rom en delphi sous XP [ par hendrix ]
Bonjour à tous,Je cherche du code en delphi pour empêcher l'ouverture d'un lecteur de CD-rom sous windows XP.Je cherche également du code en delphi p
Lancer une application externe à partir click souris [ par geronimojr ]
Bonjour,Je disirerais exécuter une fonctionalité d'une application externe à l'aide de mon application Delphi ...Me m'explique : je voudrais que mon p
Livres en rapport
|
Derniers Blogs
[TECHDAYS 2010] WINDOWS AZURE APPFABRIC (CLO305)[TECHDAYS 2010] WINDOWS AZURE APPFABRIC (CLO305) par NeuroCypher
Les webcasts sont désormais en ligne, je me décide donc à écrire ce post. J'ai encore eu la chance d'animer une session aux TechDays cette année. Le sujet : le même que l'année dernière, ou plutôt son évolution. En effet, l'année dernière la couche de com...
Cliquez pour lire la suite de l'article par NeuroCypher OUTILS D'IMPORT AVEC MISE à JOUR DANS MICROSOFT DYNAMICS CRMOUTILS D'IMPORT AVEC MISE à JOUR DANS MICROSOFT DYNAMICS CRM par bianca
Problématique
Si vous avez besoin d'exporter sous Excel une liste de comptes ou de contacts dans le but de faire des retouches à droite à gauche puis de réinjecter le tout dans CRM, vous ne pouvez pas vous en...
Cliquez pour lire la suite de l'article par bianca SQL SERVER : DéVELOPPER UN ADDON POUR SQL SERVER MANAGEMENT STUDIO (SSMS)SQL SERVER : DéVELOPPER UN ADDON POUR SQL SERVER MANAGEMENT STUDIO (SSMS) par christian
Pour celles et ceux qui aiment SQL Server et on l'âme de développeur (ou sont tout simplement développeur) et veulent étendre les fonctionnalités de SQL Server, voici un article qui devrait pouvoir un intéresser.
Certes ce dernier est écrit sur u...
Cliquez pour lire la suite de l'article par christian EDITEUR XAML DE VISUAL STUDIO: COMMENT ALIGNER LES ATTRIBUTS LES UNS EN DESSOUS DES AUTRES AUTOMATIQUEMENTEDITEUR XAML DE VISUAL STUDIO: COMMENT ALIGNER LES ATTRIBUTS LES UNS EN DESSOUS DES AUTRES AUTOMATIQUEMENT par Miiitch
Lorsque l'on écrit du XAML, les tags XML peuvent vraiment devenir très longs et pas pratique à lire: Il y a une option vraiment pratique dans l'éditeur de Visual Studio qui va nous permettre de réorganiser tout cela en mettant les attributs XAML les uns e...
Cliquez pour lire la suite de l'article par Miiitch MIX10 A LAS VEGAS : IMMERSIONMIX10 A LAS VEGAS : IMMERSION par odewit
Hi from Vegas !
En resume [je corrigerai les accents a mon retour !], Las Vegas m'impressionne par sa demesure.
Ou que l'on aille, les itineraires traversent des salles bruyantes pleines de machines a sous et de tables de jeu.
Les decors, surtout a...
Cliquez pour lire la suite de l'article par odewit
Logiciels
Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods Konvertor (4.00)KONVERTOR (4.00)Le logiciel est un gestionnaire multimedia affichant, jouant et convertissant plus de 2000 format... Cliquez pour télécharger Konvertor
Comparez les prix

HTC Magic
Entre 429€ et 429€
|