d.j.peters
Nombre de messages : 77 Age : 60 Localisation : Germany Date d'inscription : 31/07/2010
| Sujet: Re: Problème avec DIM et ADR Mar 10 Aoû 2010 - 12:02 | |
| hello Klaus i'm not a pascal /delphi coder but will this work ?
function DoItWithString(var s1: pchar): integer; stdcall; export;
ret% = DLL_CALL1("DoItWithString",adr(txt$))
now s1 should point directly to the first char of string txt$
is it right ?
DJ | |
|
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Problème avec DIM et ADR Mar 10 Aoû 2010 - 15:10 | |
| Hello DJ ! example C: - Code:
-
#include "dll.h" #include <windows.h> #include <stdio.h> #include <stdlib.h>
DLLIMPORT int __stdcall NardoReadStr (char **toto,int length) { char Message[128]; sprintf(Message,"1st char is: %c\n",**toto); MessageBox(NULL,Message,"Param",MB_ICONINFORMATION); strncpy(Message,*toto,length); MessageBox(NULL,Message,"String",MB_ICONINFORMATION); return 0; }
Panoramic call : - Code:
-
dim i%,txt$ txt$="essai de passage de chaine" dll_on "ReadnByte.dll" i%=dll_call2("NardoReadStr",adr(txt$),len(txt$)) dll_off
| |
|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Problème avec DIM et ADR Mar 10 Aoû 2010 - 17:42 | |
| @d.j.peters: YES, this is exact - your code works as suggested. Thanks for the fine tip ! | |
|
Jack Admin
Nombre de messages : 2394 Date d'inscription : 28/05/2007
| Sujet: Re: Problème avec DIM et ADR Lun 23 Aoû 2010 - 16:19 | |
| Je n'ai pas pu reproduire l'exemple donné par Nardo26. J'obtiens les mêmes valeurs, quel que soit l'ordre de déclaration des 2 variables, et heureusement.
| |
|
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Problème avec DIM et ADR Lun 23 Aoû 2010 - 16:52 | |
| Et pourtant... sur mon PC et apparemment sur celui de Klaus le pb demeure... Dans le doute (print) j'ai viré les parenthèses les $ et les points virgules.... - Code:
-
dim txt1$,pAdr1% dim pAdr%,txt$
txt$="Chaine 1":txt1$="Chaine 2"
pAdr%=adr(txt$) pAdr1%=adr(txt1$)
print "pAdr = "+str$(pAdr%) print "adr txt = "+str$(adr(txt$)) print "pAdr1 = "+str$(pAdr1%) print "adr txt1 = "+str$(adr(txt1$))
idem, pAdr1% est différent de adr(txt1$) | |
|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Problème avec DIM et ADR Lun 23 Aoû 2010 - 22:52 | |
| Je confirme. Je n'ai bien sûr pas les mêmes chiffres, mais la même différence. C'est vraiment bizarre... | |
|
Contenu sponsorisé
| Sujet: Re: Problème avec DIM et ADR | |
| |
|