IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

[Pointeur] Allocation mémoire


Sujet :

Langage Delphi

  1. #1
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut [Pointeur] Allocation mémoire


    J'ai une erreur : "Acces violation at 0x00404616 : read of adresse 0x000027fc" lors de la libération de mon pointeur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
      PBuffer = PChar(AllocMem(10240));
      try
       // mon traitement
      finally
        freemem(PBuffer); // l'erreur se passe ici quand je fais un pas à pas
      end;
    Donc je voudrais savoir :
    1 - Pourquoi j'ai cette erreur ?
    2 - S'il est préférable de faire un GetMem à la place d'un AllocMem (je ne suis pas obligé d'avoir une variable vide.

    Autre problème que je rencontre, c'est que certaine fonction ou composant ont un comportement assez chaotique (des violation d'acces sur une fonction qui est exécuté 3 ou 4 fois avant sans problème et qui plante d'un seul coups). Est ce que cela viendrait de l'allocation de la mémoire qui écrase la partie de la memoire ou se trouve ces fonctions/Composants ?
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  2. #2
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    GetMem est plu performant, c'est tout.

    Sinon, ce que me gène dans ton code, c'est ton cast. Pourquoi tu le fais, il ne sert pas là, non ?
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  3. #3
    Membre actif
    Profil pro
    ----
    Inscrit en
    Mai 2004
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ----

    Informations forums :
    Inscription : Mai 2004
    Messages : 185
    Points : 245
    Points
    245
    Par défaut
    L'erreur dont tu parle, avec le code que tu donnes, n'a aucune raison de ce produire...
    Par contre, les pointeurs sont à éviter quand on ne vois pas exactement ce qu'il se passe. Il faut bien veillier à les instancier, et les désinstancier... Pour ton erreur qui ce produit au bout de 3/4 passage... je ne peut pas t'aider plus que ça... par contre je pense que ta vision du problème n'est pas la bonne et que "la vérité est ailleur".
    Poste du code qui plante stp

    @MDSoft: +1
    De toutes les choses que j'ai perdue,
    Celle qui me manque le plus...
    c'est mon esprit !

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    685
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 685
    Points : 1 608
    Points
    1 608
    Par défaut
    Dans ton cas, c'esr plutôt le code de traitement, que tu n'as pas posté, qui est à incriminer. Si le pointeur est modifié pour pointer vers une autre valeur, intentionnellement ou non, des violations risquent de survenir...
    "It's more fun to compute !"

  5. #5
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par MD Software
    GetMem est plu performant, c'est tout.

    Sinon, ce que me gène dans ton code, c'est ton cast. Pourquoi tu le fais, il ne sert pas là, non ?
    Je le fais la car ce Buffer va etre utilisé environ 2 à 3 fois par secondes, par une flopper de traitement, donc je l'ai mis en debut de procédure pour éviter des allocations et libérations intempestives (c'est une dll qui gère le buffer et rempli les données, de ce coté la, tout ce passe correctement, les fonctions de la DLL me renvoi des codes d'etat correct).

    La je viens de faire une autre test, j'ai placé la création du PBuffer dans le on create de ma form et le freemem dans le onclose.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
      iAction := STINITIALISATION;
      // try
      While iAction <> STEXIT do  // violation d'acces ici oO
        case iAction of
          STINITIALISATION: begin
          end;
          // suite du traitement ....
        end; // case
      // finally
     //end;
    Je précise que j'ai D2005 Entreprise
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  6. #6
    Membre actif
    Profil pro
    ----
    Inscrit en
    Mai 2004
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ----

    Informations forums :
    Inscription : Mai 2004
    Messages : 185
    Points : 245
    Points
    245
    Par défaut
    Regarde si ton pointeur ne changerai pas d'adresse par asard
    De toutes les choses que j'ai perdue,
    Celle qui me manque le plus...
    c'est mon esprit !

  7. #7
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par /dev/null
    Regarde si ton pointeur ne changerai pas d'adresse par asard
    Je vois ca comment ?

    Sinon, en passant, j'ai un PUINT qui se balade dans le code, autant c'est peut être lui qui met le bronx.

    Je le défini de la manière suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    var
      PSIZE : PUINT;
    begin
      New(PSIZE);
      try 
        // Traitement;
      finally
        Dispose(PSIZE);
      end;
    end;
    L'erreur viendrait il pas de lui ? (je ne suis pas sûr de l'initialisation de celui-ci)
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  8. #8
    Membre éclairé
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Points : 680
    Points
    680
    Par défaut
    Citation Envoyé par Malatar
    L'erreur viendrait il pas de lui ? (je ne suis pas sûr de l'initialisation de celui-ci)
    ça a l'air correct
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  9. #9
    Membre actif
    Profil pro
    ----
    Inscrit en
    Mai 2004
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : ----

    Informations forums :
    Inscription : Mai 2004
    Messages : 185
    Points : 245
    Points
    245
    Par défaut
    Tu le sauvegarde dans une variable. Cette variable ne doit servir a rien d'autre, histoire d'être sur qu'elle n'est pas modifié. Ensuite, avant la désalocation tu fait un if pour vérifier la corespondance des deux adresses. Là je vois deux cas ennuyeus qui peuvent ce produire:
    1. Ton adresse change, ta DLL retournant un pointeur, sans faire attention au contenus du pointeur passé...
    2. Ton bloc de mémoire est désaloue une fois de trop...
    De toutes les choses que j'ai perdue,
    Celle qui me manque le plus...
    c'est mon esprit !

  10. #10
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    685
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 685
    Points : 1 608
    Points
    1 608
    Par défaut
    Un coup de MemCheck peut ouvrir quelques pistes...
    "It's more fun to compute !"

  11. #11
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    j'ai une question moi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      PBuffer := PChar(AllocMem(10240));
    pourqoi ce PChar??

    j'ai tester tout sa et sa marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
      PBuffer := PChar(AllocMem(10240));
      freemem(pbuffer);
     
      PBuffer := PChar(AllocMem(10240));
      freemem(pbuffer,1024);
     
      PBuffer := AllocMem(10240);
      freemem(pbuffer,1024);
    quel est la differense entre ces ligne??

    dans l'aide de delphi sur freemem en a

    FreeMem détruit la variable référencée par P et renvoie sa mémoire dans la pile. Si P ne pointe pas sur la mémoire de la pile, une erreur d'exécution se produit. Si P pointe sur une structure incluant des chaînes longues, des variants, des tableaux dynamiques ou des interfaces, appelez Finalize avant d'appeler FreeMem.

    j'ai toujour utlisé getmeme(p,tail) et freemem(p,tail) et j'ai jamai eu de probléme, c'est pouqoi j'ai jamai essayer de savoir plus sur ces command
    alors si quelqu'un a plus que les explication de delphi merci
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  12. #12
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Bon j'ai changé ma technique au niveau du pointeur


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
    procedure TFrmMain.StartTraitement;
    begin
      iAction := STINITIALISATION;
      While iAction <> STEXIT do
        case iAction of
          STINITIALISATION: begin
            // traitement
            iAction := STTRAITEMENT1;
          end;
          STTRAITEMENT1: begin
            iAction := STTRAITEMENT2;
            PBUFFER := PCHAR(AllocMem(10240));
            try
              // Utilisation de la première fonction de la dll qui gere le buffer
            finally
              FreeMem(PBUFFER);
            end;
         end; // STTRAITEMENT1
     
          STTRAITEMENT2: begin
            iAction := STEXIT;
            PBUFFER := PCHAR(AllocMem(10240));
            try
               // Utilisation de la 2em fonction de la dll qui gère le buffer
            finally
              FreeMem(PBUFFER);
            end;
         end; // STTRAITEMENT1
     
        end; // case
    end; // --------------- j'ai la violation ici en pas à pas ----------------
    Est ce que cette violation d'acces peut venir du fait que j'ai mal défini les fonctions de la dll dans mon unité ?
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  13. #13
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    1-c'est la premiére fois que je vois case avec while comme sa
    pourqoi pas des" if else "
    2-quel est le type de votre buffer et ou tu le déclare??
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  14. #14
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    685
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 685
    Points : 1 608
    Points
    1 608
    Par défaut
    Il est fort probable que ce soit la code de la DLL qui soit à incriminer. Tu peux essayer d'exécuter le code SANS l'appel à la fonction de la DLL, et nous dire les résultats... Et le PChar me trouble un peu (enfin ca dépends quel est l'usage que tu en fais...)
    "It's more fun to compute !"

  15. #15
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par edam
    1-c'est la premiére fois que je vois case avec while comme sa
    pourqoi pas des" if else "
    2-quel est le type de votre buffer et ou tu le déclare??
    1 - C'est beaucoup plus pratique que de faite environ 30 "if else" et ca permet beaucoup plus de possibilité au niveau traitement (et aussi un gain en temps process)

    2 - le type de PBuffer et défini dans ma form principale

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     ...
    var
      frmMain: TfrmMain;
      PBuffer,PIdService : PChar;
     
    implementation
     ...
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  16. #16
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par Reisubar
    Il est fort probable que ce soit la code de la DLL qui soit à incriminer. Tu peux essayer d'exécuter le code SANS l'appel à la fonction de la DLL, et nous dire les résultats... Et le PChar me trouble un peu (enfin ca dépends quel est l'usage que tu en fais...)
    Ci dessous mon unité ou j'ai mis toutes les fonctions de la dll

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
     
    unit Ma_dll;
     
    interface
     
    uses ShareMem,StdCtrls,windows;
     
      function ApiOpen(IdInstance : PUINT;    
                            TypeClient,                
                            ModeEvent,                
                            ModeInterface,           
                            Ldebug          : UINT;  
                            FileTrace       : PChar; 
                            ModuloTrace,	          
                            IdStation,	             
                            Lang  	      : UINT;
                            Path	      : PChar;
                            ModeEcho,	      
                            TimeOutMaxMessage,        
                            ModeOffline		  : UINT;
                            PathServeur		  : PChar;
                            Scellement		  : UINT;   
                            PathMemoireDouble	: PChar;
                            NbJoursSauves	  : UINT     
                          )  : UINT; stdcall; external 'Ma_dll.dll';
     
      function ApiClose (IdInstance,	           
                             StopServeur : UINT 
                            ) :	UINT;stdcall; external 'Ma_dll.dll';
     
      function SendMessage(IdInstance :	integer;
                                  IdService : PChar;    
                                  LPZBuffer	: PChar;    
                                  LgBuf : PUINT         
                                 ) : UINT; cdecl; external 'Ma_dll.dll';
     
      function GetMessage(IdInstance	: UINT;   
                                 IdService : PChar;     
                                 LPZBuffer : PChar;     
                                 LgBuf	: PUINT  
                                ) : UINT; cdecl; external 'Ma_dll.dll';
     
      function WaitSynchro(IdInstance : UINT;  
                                  TimeOut : UINT        
                                 ) : UINT; cdecl; external Ma_dll.dll';
     
      function WriteInit (Buffer : PChar; 
                               MaxLengthToBuild	: UINT 
                              ) : UINT; cdecl; external 'Ma_dll.dll';
     
      function ReadInit (Buffer	: PChar;  
                              MaxLengthToExtract : UINT 
                             ) : UINT; cdecl; external 'Ma_dll.dll';
     
      function SetVal(Tag : PChar; 
                                 ASCIIValue : PChar
                                ) : UINT; cdecl; external 'Ma_dll.dll';
     
      function GetVal(Tag : PChar;  
                                 ASCIIValue : PChar; 
                                 SearchFromStart : UINT       
                                ) : UINT; cdecl; external 'Ma_dll.dll';
     
    implementation
     
    end.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  17. #17
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    [quote="Malatar

    1 - C'est beaucoup plus pratique que de faite environ 30 "if else" et ca permet beaucoup plus de possibilité au niveau traitement (et aussi un gain en temps process)
    [/quote]

    mais ces dizaine de ligne, a chaque entré de case tu affect a iaction une seule autre valeur sans une seule condition
    au moins si tu as
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if conditon then iaction=... else iaction:=...;
    Citation Envoyé par "Malatar
    2 - le type de PBuffer et défini dans ma form principale
    [code
    ...
    var
    frmMain&#58; TfrmMain;
    PBuffer,PIdService &#58; PChar;

    implementation
    ...
    [/code]
    a ma conaissance pachar s'utilise directement avaec affectation
    en plus utlise une string simplement
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  18. #18
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par edam
    Citation Envoyé par Malatar

    1 - C'est beaucoup plus pratique que de faite environ 30 "if else" et ca permet beaucoup plus de possibilité au niveau traitement (et aussi un gain en temps process)
    mais ces dizaine de ligne, a chaque entré de case tu affect a iaction une seule autre valeur sans une seule condition

    au moins si tu as
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if conditon then iaction=... else iaction:=...;
    Citation Envoyé par Malatar
    2 - le type de PBuffer et défini dans ma form principale
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     ...
    var
      frmMain: TfrmMain;
      PBuffer,PIdService : PChar;
     
    implementation
     ...
    a ma conaissance pachar s'utilise directement avaec affectation
    en plus utlise une string simplement
    1 - J'ai des fonctions qui me retourne à quelle action je dois aller

    ex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
     
      While iAction <> STEXIT do
        case iAction of
          STTRAITEMENT1: begin  // initialisation des varaibles
            //liste des variable a traiter
            iAction := STTRAITEMENT2;
          end;
     
         STTRAITEMENT2 : begin
            iAction := Mafonction(Desvaraibles);
         end;
     
         etc ....
     
       end;
    C'est un exemple de mon code que je fourni pas le code en lui même
    Cette technique permet de séparer les processus de mon traitement et d'aller d'un processus à l'autre et a définir des chemins d'actions.

    2 - La fonction de la dll demande un PChar, je vais pas lui mettre un string, a mon avis le compilateur n'acceptera pas
    De plus la fonction de la dll m'oblige à allouer ma variable avant le traitement.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  19. #19
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    désolé j'ai pas vu votre poste ou tu donne votre unité
    j'ai vu que tu utilise des procedure déja déclaré en delphi comme sendmessage et avec le meme nombre de variable
    la tu es sur que vous apple tes prpore proc ou ceux de delphi???
    pour votre while case je pense que tu bloc un peut le fill de message

    en as pas besoin d'un buldozer pour en lver une petit callou de notre salon
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  20. #20
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par edam
    désolé j'ai pas vu votre poste ou tu donne votre unité
    j'ai vu que tu utilise des procedure déja déclaré en delphi comme sendmessage et avec le meme nombre de variable
    la tu es sur que vous apple tes prpore proc ou ceux de delphi???
    pour votre while case je pense que tu bloc un peut le fill de message

    en as pas besoin d'un buldozer pour en lver une petit callou de notre salon
    Désolé, j'aurais du préciser que je suis soumis à la confidentialité donc je change les noms existants, donc au niveau des noms de l'unité" de la dll ce sont des noms pris au hasard et j'ai aps fait gaffe qu'il etait deja défini au niveau de delphi
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

Discussions similaires

  1. Réponses: 7
    Dernier message: 07/10/2010, 20h16
  2. Pointeur, structure, allocation mémoire
    Par rirola12 dans le forum C
    Réponses: 4
    Dernier message: 22/04/2010, 17h14
  3. Pointeur sur fonction et allocation mémoire
    Par Captain_JS dans le forum C++
    Réponses: 4
    Dernier message: 31/07/2008, 09h55
  4. Réponses: 6
    Dernier message: 24/03/2006, 18h24
  5. Allocation mémoire dynamique
    Par ITISAR dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 21/01/2005, 09h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo