Banban113
Messages postés10Date d'inscriptionjeudi 10 juin 2004StatutMembreDernière intervention 7 février 2005
-
5 janv. 2005 à 11:56
cs_rt15
Messages postés3874Date d'inscriptionmardi 8 mars 2005StatutModérateurDernière intervention 7 novembre 2014
-
31 août 2005 à 12:15
Salut tout le monde !
Je suis un petit nouveau sur ce site !!!!
Bon voila, je bosse sur un logiciel et je dois faire une dll appelé par celui-ci.
J'arrive pas à configurer Delphi 7 pour que le debugger marche.
J'ai potasser toute la doc ecrite et en ligne te je comprends pas !!!!!
Quelqu'un peut-il m'aider, j'en ai marre de mettre des boites de messages pour debugger mes applis !!!!!
Au fait, si je fais les mêmes developpements avec VB 6.0, le debugger marche.
Malheureusement ce coup-ci on m'impose Delphi 7
Banban113
Messages postés10Date d'inscriptionjeudi 10 juin 2004StatutMembreDernière intervention 7 février 2005 17 janv. 2005 à 10:18
Il Fallait dans Projet/Options Onglet "Lieur" cocher les cases "Informations de debogage TD32" et "Symboles de debogage distant".
Ensuite il faut faire : Projet/Construire Projet (Cela va changer les options dans le fichier dpr du projet)
Puis ensuite compiler le projet.
Enfin envoyer les options de lecture pour debogger.
Attention si c'est l'inverse qui est fait : cad compiler puis construire, les options ne seront pas prises en compte et se remettront comme avant, cad les deux cases decochées.
jmp77
Messages postés1119Date d'inscriptionlundi 4 février 2002StatutMembreDernière intervention 4 octobre 20067 5 janv. 2005 à 13:21
Hello,
Alors je ne sais pas si j'ai tout compris : Tu dois faire la dll + l'appli qui l'appelle ?
Si c'est le cas quand tu veux debugger ta dll tu dois ouvrir le fichier
dpr de celle ci puis tu dois definir l'application hote. Pour cela tu
vas dans le menu Executer puis Parametres et dans application hote tu pointes sur ton exe.
Ainsi tu peux lancer un debugage sur ta dll.
J'espere avoir pu t'aiguiller.
Ah oui moi je suis en delphi 6 et si je definis une application hote
qui ne se trouve pas dans le repertoire de la dll et bien ca ne marche
pas. A chaque fois je dois copier l'exe de mon programme pres du .dpr
de la dll pour que le debugage fonctionne. Pourquoi si quelqu'un le
sait ?
Banban113
Messages postés10Date d'inscriptionjeudi 10 juin 2004StatutMembreDernière intervention 7 février 2005 5 janv. 2005 à 13:53
Salut
Pour preciser un peu.
Je bosse sur un logiciel qui exite deja et qui n'est pas simplement un exe.
On peut, pour completer les fonctions de ce soft en appelant des dll par des scripts simples.
En fait quand je configure le debogger, Delphi me lance bien mon soft mais une fois les fonctions de la dll appelées, il passe sur mes points d'arret sans les voir.
Un de mes collegues m'a dit qu'il a deja vu marcher ce debug sur une dll avec le soft sur lequel on travail.
Pour te repondre JMP77, la dll pointait deja sur l'exe. J'ai essayé de mettre tout dans le meme repertoire (dll + source + exe) et ça ne marche pas non plus. Je regarde la source de ton lien pour voir.
Banban113
Messages postés10Date d'inscriptionjeudi 10 juin 2004StatutMembreDernière intervention 7 février 2005 6 janv. 2005 à 10:20
Voila le Script qui lance ma dll
=============================================================
Function AddFiles (ApplHndl As Long,Sstr As String,FirstPar As Long,SecondPar As Long,ThirdPar As Long) As Integer
Dim MonComp As Object
Dim FirstRec As Object
'Appel d'une dll du logiciel pour convertir la session et une recliste en comrecordlist
Set SmSession = SCREXT_ObjectForInterface(ApplHndl)
CONV_RecListToComRecordList FirstPar,FirstRec
' Récupère le composant Main de la Dll
Set MonComp=CreateObject("DLLProject.Main")
If MonComp Is Nothing Then
msgbox "Erreur lors de la connexion à l'interface"
RunConfigurateur=Err_Gen
Exit Function
End If
' On lance la fonction de la DLL
MonComp.AddFiles FirstRec
' Fermeture du composant
Set Main=Nothing
AddFiles = ERR_NONE
End Function
==================================================================
// On declare les variables
ParentObjId := Rec.Value['OBJECT_ID1'];
ParentClassID := Rec.Value['PAR_CLASS_ID'];
ChildObjId := Rec.Value['OBJECT_ID2'];
ChildClassID := Rec.Value['SON_CLASS_ID'];
// On recupere parent et enfant du lien
Parent := Session.ObjectStore.RetrieveObject(ParentClassID,ParentObjID);
Child := Session.ObjectStore.RetrieveObject(ChildClassID,ChildObjID);
// On initialise le nom de parent en fonction du parent
LookUpObjId := Parent.Value['CN_DEPT'];
// On fait les modif dans l'objet qui a été créer
Child.Value['CN_DEPT'] := LookUpObjId;
Child.Update;
// ************************************************************************ //
// AVERTISSEMENT
// -------
// Les types déclarés dans ce fichier ont été générés à partir de données lues
// depuis la bibliothèque de types. Si cette dernière (via une autre bibliothèque de types
// s'y référant) est explicitement ou indirectement ré-importée, ou la commande "Rafraîchir"
// de l'éditeur de bibliothèque de types est activée lors de la modification de la bibliothèque
// de types, le contenu de ce fichier sera régénéré et toutes les modifications
// manuellement apportées seront perdues.
// ************************************************************************ //
// PASTLWTR : 1.2
// Fichier généré le 22/11/2004 14:52:53 depuis la bibliothèque de types ci-dessous.
IID_IIntertec: TGUID = '{180106A9-7B4C-4CB4-B929-C4B3E3E26AFA}';
CLASS_Intertec: TGUID = '{97DF2EB8-4338-4806-B70B-7629F4CCBB3E}';
type
// *********************************************************************//
// Déclaration Forward des types définis dans la bibliothèque de types
// *********************************************************************//
IIntertec = interface;
IIntertecDisp = dispinterface;
// *********************************************************************//
// Déclaration de CoClasses définies dans la bibliothèque de types
// (REMARQUE: On affecte chaque CoClasse à son Interface par défaut)
// *********************************************************************//
Intertec = IIntertec;
// *********************************************************************//
// La classe CoIntertec fournit une méthode Create et CreateRemote pour
// créer des instances de l'interface par défaut IIntertec exposée
// par la CoClasse Intertec. Les fonctions sont destinées à être utilisées par
// les clients désirant automatiser les objets CoClasse exposés par
// le serveur de cette bibliothèque de types.
// *********************************************************************//
CoIntertec = class
class function Create: IIntertec;
class function CreateRemote(const MachineName: string): IIntertec;
end;
implementation
uses ComObj;
class function CoIntertec.Create: IIntertec;
begin
Result := CreateComObject(CLASS_Intertec) as IIntertec;
end;
class function CoIntertec.CreateRemote(const MachineName: string): IIntertec;
begin
Result := CreateRemoteComObject(MachineName, CLASS_Intertec) as IIntertec;
end;