| Bienvenu au nouveau Panoramicien | |
|
+5d.j.peters jjn4 Jean Claude Tecking Klaus 9 participants |
|
Auteur | Message |
---|
d.j.peters
Nombre de messages : 77 Age : 60 Localisation : Germany Date d'inscription : 31/07/2010
| Sujet: Re: Bienvenu au nouveau Panoramicien Mer 4 Aoû 2010 - 0:27 | |
| no comment - Code:
-
dim pChars%,p1%
dim txt$ txt$ = "12345678" print "txt$ = " + txt$ print "adr(txt$) = " + str$(adr(txt$)) pChars%=adr(txt$) print "pChars% = adr(txt$) " + str$(pChars%)
p1%=pChars% print "p1%=pChars% " + str$(p1%) p1%=p1%+1 print "p1%=p1+1 " + str$(p1%) p1%=p1%+1 print "p1%=p1+1 " + str$(p1%)
p1%=adr(txt$)+0 print "p1%=adr(txt$)+0=" + str$(p1%) p1%=adr(txt$)+1 print "p1%=adr(txt$)+1=" + str$(p1%) p1%=adr(txt$)+2 print "p1%=adr(txt$)+2=" + str$(p1%)
end | |
|
| |
Invité Invité
| Sujet: Re: Bienvenu au nouveau Panoramicien Mer 4 Aoû 2010 - 0:57 | |
| Verzeihen Sie mir, aber es ist seit über 40 Jahren spreche ich kein Deutsch. Klaus ist jetzt in den Ferien für eine Woche. Dies ist der Brief, den er auf dem Brett hat. Ich denke, das Programm selbst bestimmt ist. Viel zu lange, ich rede mehr, so dass ich aufhören Ich benutze auch Google zu übersetzen .. Gute Nacht Ich hoffe, du verstehst mich
Juste pour dire avec mes grosses lacunes d'aujourd'hui, que Klaus est en congé pour une semaine. Maintenant je me fais tout petit!
|
|
| |
d.j.peters
Nombre de messages : 77 Age : 60 Localisation : Germany Date d'inscription : 31/07/2010
| Sujet: Re: Bienvenu au nouveau Panoramicien Mer 4 Aoû 2010 - 8:44 | |
| - Nardo26 a écrit:
- a% is not a pointer of the beginning of the string (*pchar) why ?
hello Nardo26, a% points inside the string descriptor an pointer on pointer. here are an more advance example and solution. DJ - Code:
-
dll_on "kernel32.dll"
label AllocConsole,FreeConsole,WriteConsole,GetStrAdr dim hConsole%,txt$,nBytes%,ret%,pChars% dim STD_INPUT_HANDLE%,STD_OUTPUT_HANDLE%,STD_ERROR_HANDLE%
STD_INPUT_HANDLE% = -10 STD_OUTPUT_HANDLE% = -11 STD_ERROR_HANDLE% = -12
' ' main ' txt$ = "hello, world!"
' create and open a windows console gosub AllocConsole
' get address of the string pChars%=adr(txt$) ' print the string at address pChars gosub WriteConsole :' wrong
' now get the real address of the chars gosub GetStrAdr ' print the string at address pChars gosub WriteConsole :' ok ' waiting a litle bit wait 3000
' destroy the console gosub FreeConsole ' thats all for now terminate
AllocConsole: ret%=dll_call0("AllocConsole") hConsole%=dll_call1("GetStdHandle",STD_OUTPUT_HANDLE%):return
FreeConsole: ret%=dll_call0("FreeConsole"):return
WriteConsole: ret%=dll_call5("WriteFile",hConsole%,pChars%,len(txt$),adr(nBytes%),0):return
GetStrAdr: ' adr(txt$) points to an pointer with the address of the chars ' now we copy from pChars the new address back in pChars. ret% = dll_call3("RtlMoveMemory",adr(pChars%),pChars%,4) return | |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Bienvenu au nouveau Panoramicien Mer 4 Aoû 2010 - 10:14 | |
| Hello D.J When I run the prog, the console is void... The 2nd call WriteConsole do nothing... I search... The descriptor : . Counter ref : 32 bits <- adr(txt$) ??? . Str Length : 32 bits . char * total : 4 bytes... RtlMoveMemory(IN VOID UNALIGNED *Destination, IN CONST VOID UNALIGNED *Source, IN SIZE_T Length ); i'm wrong ? | |
|
| |
d.j.peters
Nombre de messages : 77 Age : 60 Localisation : Germany Date d'inscription : 31/07/2010
| Sujet: Re: Bienvenu au nouveau Panoramicien Mer 4 Aoû 2010 - 12:02 | |
| hello Nardo26 on my box the second call to ConsoleWrite prints out "Hello, world" i use a win32 XP none unicode box
what are your OS ?
thank you
DJ | |
|
| |
jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Mer 4 Aoû 2010 - 12:36 | |
| Ouahhhh ! Voilà un forum qui prend une dimension internationale ! (in english : Ouahhh ! Here is a forum witch take an international dimension) (pour l'allemand désolé, c'est trop loin...) (je ne sais plus où j'ai mis mon traducteur) | |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Bienvenu au nouveau Panoramicien Mer 4 Aoû 2010 - 13:49 | |
| Hi D.J,
I tried on XP SP2 and SP3 console MS-DOS... font : Lucida Console 12pts
The console seems received 2 bytes: #$0A0D (SelectAll + Copy + Paste on Editor SlickEdit,)
Nardo
PS: for the test, is it possible to fix the output to clipboard ?
| |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Bienvenu au nouveau Panoramicien Mer 4 Aoû 2010 - 14:21 | |
| Pour tous les autres: bienvenue à la tour de Babel ! | |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Bienvenu au nouveau Panoramicien Mer 4 Aoû 2010 - 14:36 | |
| Désolé, mais je suis sûr qu'en ce moment, il y en a qui doivent se fendre la tronche en constatant ma maitrise de l'anglais.... L'essentiel c'est d'arriver à se comprendre n'est-ce pas ? @D.J : a "buggy prog" - Code:
-
label SetClipboard
dim GHND%,CF_TEXT%,MAXSIZE% dim hGlobalMemory%,lpGlobalMemory% GHND%=66 : ' 0x42 CF_TEXT%=1 MAXSIZE%=4096
SetClipboard: dll_on "kernel32.dll" hGlobalMemory% = dll_call2("GlobalAlloc",GHND%,len(txt$)+1) lpGlobalMemory% = dll_call1("GlobalLock",hGlobalMemory%) ret% = dll_call3("RtlMoveMemory",adr(pChars%),pChars%,4) lpGlobalMemory% = dll_call2("lstrcpy",lpGlobalMemory%,pChars%) lpGlobalMemory% = dll_call1("GlobalUnlock",hGlobalMemory%) dll_off wait 1000 dll_on "User32.dll" ret%=0 ret%=dll_call1("OpenClipboard",ret%) ret%=dll_call2("SetClipboardData",CF_TEXT%,hGlobalMemory%) ret%=dll_call0("CloseClipboard") dll_off return Note : The first call of WriteConsole moves the cursor on the 13th column but there is no char before... The second : nothing, Nichts, nada, Niets, Ничто | |
|
| |
d.j.peters
Nombre de messages : 77 Age : 60 Localisation : Germany Date d'inscription : 31/07/2010
| Sujet: Re: Bienvenu au nouveau Panoramicien Mer 4 Aoû 2010 - 16:45 | |
| | |
|
| |
659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Re: Bienvenu au nouveau Panoramicien Mer 4 Aoû 2010 - 16:50 | |
| Welcome to Panoramic Joshy . you have done very good job with your plugin in. great to see you here. | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Bienvenu au nouveau Panoramicien Mer 4 Aoû 2010 - 18:05 | |
| @D.J.Peters your example seems very interesting but difficult to test because: - it is in form of picture, and we must type it again (I did it). - it is truncated (missing the first six lines, I suppose DIMs and LABELs, and what more ?) - which dll is to be loaded for the dll calls ?
It would have been better inserted between [ code ] [ /code ]
sorry if I misunderstood something (perhaps it was not intended to be tested by us !)... | |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Bienvenu au nouveau Panoramicien Mer 4 Aoû 2010 - 19:08 | |
| @JL35 le code se trouve en page 2.... | |
|
| |
d.j.peters
Nombre de messages : 77 Age : 60 Localisation : Germany Date d'inscription : 31/07/2010
| Sujet: Re: Bienvenu au nouveau Panoramicien Jeu 5 Aoû 2010 - 4:44 | |
| Nardo here i wrote it for your box with the bug It let you show the string refcounter the nSize field of the string descriptor and of course the chars on the real pointer pChar too. DJ - Code:
-
dll_on "kernel32.dll"
label ReadByte0,ReadByte1,ReadByte2,ReadByte3,Read4Bytes,GetCharPointer
dim ret%,pAdr,pChar%,txt$,b$,Byte%
txt$="AbCd"
print "string is '"; txt$; "'" pAdr=adr(txt$):pChar%=pAdr print "adr(txt$) points inside the decriptor "; pAdr gosub ReadByte0:print "pAdr[0] = "; chr$(Byte%) gosub ReadByte1:print "pAdr[1] = "; chr$(Byte%) gosub ReadByte2:print "pAdr[2] = "; chr$(Byte%) gosub ReadByte3:print "pAdr[3] = "; chr$(Byte%) print
gosub GetCharPointer print "the real char pointer is = "; pChar% gosub ReadByte0:print "pChar[0] = "; chr$(Byte%) gosub ReadByte1:print "pChar[1] = "; chr$(Byte%) gosub ReadByte2:print "pChar[2] = "; chr$(Byte%) gosub ReadByte3:print "pChar[3] = "; chr$(Byte%) print
pChar%=pChar%-4 print "this pointer points to nChars = "; pChar% gosub Read4Bytes:print "len(txt$) = "; byte% print
pChar%=pChar%-4 print "this pointer points to nRefs = "; pChar% gosub Read4Bytes:print "ref counter is "; byte% b$=txt$ print "after we make a copy of txt$ (b$=txt$)" gosub Read4Bytes:print "ref counter is now "; byte%
end
ReadByte0: ret%=DLL_CALL3("RtlMoveMemory",adr(Byte%),pChar%,1):return ReadByte1: ret%=DLL_CALL3("RtlMoveMemory",adr(Byte%),pChar%+1,1):return ReadByte2: ret%=DLL_CALL3("RtlMoveMemory",adr(Byte%),pChar%+2,1):return ReadByte3: ret%=DLL_CALL3("RtlMoveMemory",adr(Byte%),pChar%+3,1):return Read4Bytes: ret%=DLL_CALL3("RtlMoveMemory",adr(Byte%),pChar%,4):return GetCharPointer: ret%=DLL_CALL3("RtlMoveMemory",adr(pChar%),pChar%,4):return
| |
|
| |
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Bienvenu au nouveau Panoramicien Jeu 5 Aoû 2010 - 7:24 | |
| Thanks D.J ! If i understand your program: - Code:
-
adr(txt$) = 15894332
address value
adr()-> 15894332 : 16576308
16576300-03 ref counter 16576304-07 Len(Txt$) 16576308-11 'AbCd'
[french]Merci beaucoup! je me coucherai moins con ce soir ! [/french] [deutsch?]Vielen Dank! Ich will schlafen weniger dumm heute abend! [/deutsch?] I tried this morning on another PC (on XP SP2) and the result is : | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Bienvenu au nouveau Panoramicien Jeu 5 Aoû 2010 - 10:37 | |
| Nardo, merci pour le code... j'avais pô vu... | |
|
| |
d.j.peters
Nombre de messages : 77 Age : 60 Localisation : Germany Date d'inscription : 31/07/2010
| Sujet: Re: Bienvenu au nouveau Panoramicien Jeu 5 Aoû 2010 - 11:47 | |
| Nardo you have another version of Panoramic my is 0.9.19 and yours ?
? ! ?
DJ
Dernière édition par d.j.peters le Jeu 5 Aoû 2010 - 12:40, édité 1 fois | |
|
| |
d.j.peters
Nombre de messages : 77 Age : 60 Localisation : Germany Date d'inscription : 31/07/2010
| Sujet: Re: Bienvenu au nouveau Panoramicien Jeu 5 Aoû 2010 - 12:15 | |
| My XP box is 32 bit and has SP 3the string info code works ok here with the latest version of panoramic 0.9.20i2 DJ | |
|
| |
Invité Invité
| Sujet: Re: Bienvenu au nouveau Panoramicien Jeu 5 Aoû 2010 - 23:43 | |
| |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Bienvenu au nouveau Panoramicien Sam 7 Aoû 2010 - 18:20 | |
| | |
|
| |
659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Re: Bienvenu au nouveau Panoramicien Sam 7 Aoû 2010 - 18:52 | |
| C'est superbe ils utilisent "htlm5" je ne sais pas ce que c'est mais superbe aussi avec le son. | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Bienvenu au nouveau Panoramicien Sam 7 Aoû 2010 - 20:05 | |
| Je ne sais pas trop non plus, apparemment l'animation se fait uniquement en modifiant la palette de couleurs (j'ai trouvé un source en freebasic qui permet l'affichage. Et une trentaine d'images du même genre, je te donnerai le lien si tu veux). | |
|
| |
659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Re: Bienvenu au nouveau Panoramicien Sam 7 Aoû 2010 - 21:20 | |
| | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Bienvenu au nouveau Panoramicien Sam 7 Aoû 2010 - 21:43 | |
| | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Bienvenu au nouveau Panoramicien Sam 14 Aoû 2010 - 23:16 | |
| Bienvenue à Carl inscrit ce jour ! Il ne nous a pas donné beaucoup d'infos sur lui; néanmoins, que ce forum lui apporte ce qu'il cherche ! | |
|
| |
Contenu sponsorisé
| Sujet: Re: Bienvenu au nouveau Panoramicien | |
| |
|
| |
| Bienvenu au nouveau Panoramicien | |
|