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 :

C vers delphi NULL erreur Un objet constante ne peut être passé comme paramètre Var


Sujet :

Langage Delphi

  1. #1
    Membre expérimenté
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    984
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 984
    Points : 1 418
    Points
    1 418
    Par défaut C vers delphi NULL erreur Un objet constante ne peut être passé comme paramètre Var
    bonjour, je bloque sur une conversion qui me parait correct:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    INT nSize = VMProtectGetCurrentHWID(NULL, 0); // get number of required bytes 
    char *pBuf = new char[nSize]; // allocate buffer
    VMProtectGetCurrentHWID(pBuf, nSize); // obtain hardeare identifier
    // use it
    delete [] pBuf; // release buffer
    et je fait:
    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
    Procedure TForm3.Button3Click(Sender: TObject);
    Var
      Buffer: PChar;
      Size:   Integer;
    Begin
      Size := VMProtectGetCurrentHWID(null, 0);
      GetMem(Buffer, Size);
      Try
        VMProtectGetCurrentHWID(Buffer, Size);
        Application.MessageBox(PChar('Votre identifiant matériel est:' + sLineBreak) + Buffer, PChar('Information'), MB_ICONINFORMATION Or MB_OK);
      Finally
        FreeMem(Buffer);
      End;
    End;
    Delphi me sort sur la ligne rouge:
    Un objet constante ne peut être passé comme paramètre Var
    Quelqu'un peut m'aider à comprendre? Merci
    Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.

  2. #2
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 288
    Points : 1 936
    Points
    1 936
    Par défaut
    nil au lieu de null, non?
    Delphi 7/XE2/XE3
    C#
    Oracle 9i à 12c
    SQL Server 2008 à 2014

  3. #3
    Membre éprouvé
    Avatar de Dr.Who
    Inscrit en
    Septembre 2009
    Messages
    980
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Septembre 2009
    Messages : 980
    Points : 1 294
    Points
    1 294
    Par défaut
    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
     
     
    interface
     
    function VMProtectGetCurrentHWID(Buffer: PAnsiChar; BufferLen: LongWord): LongInt; stdcall; 
     
    function VMProtectGetCurrentHWIDText: string; 
     
    implementation
     
    const
      VMProtectSDK = 'VMProtect32.dll';
     
    function VMProtectGetCurrentHWID; external VMProtectSDK name 'VMProtectGetCurrentHWID';
     
    function VMProtectGetCurrentHWIDText: string;
    var
      pBuf  : PAnsiChar;
      nSize : LongWord;
    begin
      result := '';
      nSize := VMProtectGetCurrentHWID(Nil, 0);
      GetMem(pBuf, nSize);
      try
        VMProtectGetCurrentHWID(pBuf, nSize);
        result := StrPas(pBuf);
      finally
        FreeMem(pBuf, nSize);
      end;
    end;
    [ Sources et programmes de Dr.Who | FAQ Delphi | FAQ Pascal | Règlement | Contactez l'équipe ]
    Ma messagerie n'est pas la succursale du forum... merci!

  4. #4
    Membre expérimenté
    Avatar de ouiouioui
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Août 2006
    Messages
    984
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 984
    Points : 1 418
    Points
    1 418
    Par défaut
    Un énorme merci! C'est parfait!

    J'ai modifié leur sdk avec ta solution et remplaçé StrPas par String et sa fonctionne
    Il existe 3 sortes de gens: ceux qui savent compter et ceux qui ne savent pas.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/08/2010, 17h17
  2. Erreur: #1048 - Le champ ' ' ne peut être vide (null)
    Par aiss57 dans le forum Requêtes
    Réponses: 24
    Dernier message: 24/04/2009, 11h57
  3. Erreur accès fichier, connexion réseau peut être perdue!
    Par CAPRI_456 dans le forum VBA Access
    Réponses: 4
    Dernier message: 18/12/2007, 21h13
  4. Réponses: 10
    Dernier message: 04/07/2006, 20h57
  5. Réponses: 6
    Dernier message: 03/09/2003, 10h29

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