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 :

Erreur EPrivilege c'est quoi


Sujet :

Langage Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut Erreur EPrivilege c'est quoi
    Bonjour,

    Lors de l'appel d'une fonction de DLL utilisée sans problème lors d'un précédent développement, j'obtiens dans un nouceau projet le message suivant :

    Le projet bidule a déclenché une classe d'exception EPrivilège avec le message "Privileged instruction". Pour moi c'est nouveau ! Pour quelle raison cette erreur ?

    Voici le code coupable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        BMP:= Tbitmap.Create;
        try
          BMP.PixelFormat:= pf24bit;
          PanelProgressBar.Visible:= true;
          BMP.LoadFromFile(ImgFileName);
          PeekGraphDLL_ColorFromSegment( BMP,
                                         ProgressBar,
                                         ShapeExlude.Brush.Color,
                                         Seg.SegVec[I]);
          Image2.Picture.Bitmap.Assign(BMP);
          PanelProgressBar.Visible:= false;
        finally
          BMP.Free;
        end;
    L'erreur se produit à l'appel de la fonction DLL

    Bonne journée ensoleillée à tous

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 460
    Points : 24 874
    Points
    24 874
    Par défaut
    C'est une erreur assez rare, la plus fréquente est la libération incorrecte d'un pointeur

    Passez du TBitmap, TProgressBar d'un Exe à une DLL est assez périlleux !
    Pour la progression, la mise en place d'un callback serait nettement plus propre !

    Qu'est que "Seg.SegVec[I]" ?

    Ajout un débogage dans PeekGraphDLL_ColorFromSegment, si tu en es l'auteur, avec Delphi tu peux déboguer les DLL, parfois il est un peu têtu donc tu peux utiliser un fichier texte comme log d'erreur !

    Il faut que tu trouves la ligne précise dans la DLL !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    803
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 803
    Points : 182
    Points
    182
    Par défaut La fonction DLL reconnait les pixels appartenant à un segment couleur
    "Seg.SegVec[I]" est le segment d'ordre I calculé précédemment sur l'image. Une image est sementée préalablement en une dizaines de couleurs, avec la fonction appelée le segment d'ordre I est détouré, tous les pixels qui n'appartennent pas à ce segment sont colorés par ColorExlude. J'ai moi-même développé la DLL. Cette fonction ne pose aucun problème dans un projet précédent, et je l'ai tracé lors de son exécution sans avoir noté la moindre erreur ! Par ailleurs si les paramètres passés à une DLL ne changent pas de dimension, il ne devrait pas y avoir de problème... La Bitmap et la ProgressBar ne varient pas en dimension.

    Pour mieux comprendre voici le détail des structures
    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
     
    TPeekSegment = record // sructure d'un segment couleur
        SegNo           :  Integer; // N° Du segment non classé par ordre %
        PerCent         :  byte; // arrondi du % du segment / surface image
        CIELchMax       :  TPeekLch; // Luminance, Chroma, Hue  Maxi du segment
        CIELchMin       :  TPeekLch; // Luminance, Chroma, Hue  Mini du segment
        CIELab          :  TPeekLab; // Valeur moyenne CIE L*a*b* du segment
        CIELCh          :  TPeekLCh; // Valeur moyenne CIE L*C*h° du segment
        RGBFloat        :  TPeekVector3float; // RGB exprimés en réel
        Color           :  TColor; // Couleur moyenne du segment
        Used            :  Boolean; // False si n'apparteint pas à objet (détourage)
        PixSize         :  Integer; // dimension du segment en pixel
      end;
     
      TPeekSegmentPtr = ^TPeekSegment;
     
      TPeekSegmentsCfg = record // Paramétrage et résultats segmentation
        SegVec      : array of TPeekSegment;// segmentation
        Degree      : Byte;// Degré d'initialisation de la segmentation
        Speed       : Byte;// Coefficient de vitesse de calcul
        Start       : Byte;// Pourcentage de début de prise en compte
        CustumOk    : Boolean;// Personnalisation des segments
        NbrCalcSeg  : Integer;// nombre de segments calculés
        NbrUsedSeg  : Integer;// nombre de segments utilisés
        RGBStep     : double; // pas des segments sur RGB en réel
        ImgFile     : TFileName;// fichier image
        InitOk      : Boolean; // a true lors de la première utilisation
      end;

  4. #4
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 460
    Points : 24 874
    Points
    24 874
    Par défaut
    Tu n'utilise pas ShareMem ou FastShareMem dans tes autres projets ?
    Tu compile avec ou sans paquets ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. c'est quoi cet erreur? rt.jar?
    Par aroua dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 27/02/2008, 10h55
  2. c'est quoi cette erreur ?
    Par guitariste dans le forum C++
    Réponses: 4
    Dernier message: 26/12/2007, 20h42
  3. session_start erreur c'est quoi quoi le problème ?
    Par noobspower dans le forum Langage
    Réponses: 3
    Dernier message: 06/03/2007, 13h43
  4. Sujet : erreur '800a139a' C'est quoi?
    Par nickg dans le forum ASP
    Réponses: 24
    Dernier message: 29/10/2005, 17h26
  5. c'est quoi cette erreur??
    Par elekis dans le forum C++
    Réponses: 5
    Dernier message: 11/09/2005, 14h44

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