Dll et chaine de caracteres

asmahane24 Messages postés 32 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 10 octobre 2011 - 20 sept. 2008 à 11:53
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 - 20 sept. 2008 à 15:47
Bonjour;

Apres une longue recherche sur les DLL et les chaine de caracteres et apres une grande lecture, je n'arrive toujours pas a resoudre mon problem qui est l'utilisation de fonction d'une DLL qui a comme parametres d'entré des pchar et me rend un pchar.

Veuillez me guider pour voir les choses en claire.

Le code de ma DLL:

library ActivLog_cleactivation;


{ Important .... }


uses
  Windows,
  Messages,
  SysUtils,
  Variants,
  Classes,
  Graphics,
  Controls,
  Dialogs,
  StdCtrls;
{$R *.res}
////////////////////////


function CleActivation(NumSer:pchar; cle:pchar):pchar;   StdCall;
var
ns, act:String;
tcle, tnumser,tdiv,i,K,l, cleAsc:integer;


begin
ns:=numser;

 Delete(ns,6,1);
 Delete(ns,5,1);
 
  act:='';
  tcle:=length(cle);
  tnumser:=length(trim(ns));
  tdiv:=tnumser div tcle;
  if (tdiv<>0) then
  begin
   i:=1;
   K:=1;
   while (((i+tdiv)-1)<=tnumser)  do
    begin
    cleAsc:=ord(cle[K]);
    act:=act+inttostr(strtoint(Copy(ns,i,tdiv))*cleAsc);
    i:=i+tdiv;
    K:=K+1;
    end;
   if (i<=tnumser)  then
    begin
    act:=act+(inttostr(strtoint(Copy(ns,i,tnumser))*tcle));
    end;
  end
  else
  begin
    for l:=1 to tnumser do
    begin
    act:=act+inttostr(ord(ns[l])+ord(cle[l]));
    end;




  end;
//insertion de caractere aleatoire
  RandSeed:=tcle;


  Insert(chr(65+random(26)),act,2);
  Insert(chr(65+random(26)),act,3);
   result:=pchar(act);
end;
//////////////////////


 exports
CleActivation;
/////////////////
begin
end.

Le code source de mon application:

procedure TForm1.BTNActClick(Sender: TObject);
var
numero,cle:string;
cl, activ:string;


begin
cl:='abcd';
numero:= EdtNumSerie.text; // valeur saisie '1387ZE429617';
activ:=CleActivation(pchar(numero),pchar(cle));


end;

merci de m'aider pour resoudre se probleme.

2 réponses

asmahane24 Messages postés 32 Date d'inscription mardi 22 mars 2005 Statut Membre Dernière intervention 10 octobre 2011
20 sept. 2008 à 11:55
Je rajoute que je voudrai pas utiliser le 'ShareMem'
Merci
0
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
20 sept. 2008 à 15:47
function Truc(const A, B: PChar): PChar; stdcall;
var sA, sB, sR: string;
begin
  sA := A;
  sB := B;

  sR := sA +' '+ sB;

  result := PChar(sR);
end;

<hr size="2" width="100%" />
0
Rejoignez-nous