Dll RAPI probleme de convertion d'un code de VB
Bonjour Djes,
Je veux bien sur le fait de la compilation, mais si je ne met pas
searchhandle = CallFunction(#OPENLIB_0, "CeFindFirstFile", StrPtr(filereps), finddata)
avec pour le moment ce que j'ai compris
Procedure StrPtr(text.s)
;
Define *MemPtr.l
*MemPtr = AllocateMemory(Len(text))
PokeS(*MemPtr,text,Len(text),#PB_Unicode)
ProcedureReturn *MemPtr
EndProcedure
la dll Rapi me repond Faux et donc rien ne ce passe.
Cordialement,
GallyHC
Je veux bien sur le fait de la compilation, mais si je ne met pas
searchhandle = CallFunction(#OPENLIB_0, "CeFindFirstFile", StrPtr(filereps), finddata)
avec pour le moment ce que j'ai compris
Procedure StrPtr(text.s)
;
Define *MemPtr.l
*MemPtr = AllocateMemory(Len(text))
PokeS(*MemPtr,text,Len(text),#PB_Unicode)
ProcedureReturn *MemPtr
EndProcedure
la dll Rapi me repond Faux et donc rien ne ce passe.
Cordialement,
GallyHC
Normalement, si tu actives le support unicode dans les options, tu devrais pouvoir passer directement une chaine à la fonction; regarde l'aide sur callfunction et de là sur "prototype". Faudrait arriver à un truc comme ça :
Code : Tout sélectionner
Prototype.l CeFindFirstFile(lpFileName.p-unicode, lpFindFileData.CE_FIND_DATA)
If OpenLibrary(0, "rapi.dll")
CeFindFirstFile.handle= GetFunction(0, "CeFindFirstFile")
CeFindFirstFile(filereps, finddata)
EndIf
bonjour GallyHC
sinon essaye ce code?? je l'ai trouvé sur le forum anglais
et 2 posts relatif a ton problème
http://translate.google.com/translate?j ... ry_state0=
http://translate.google.com/translate?j ... ry_state0=
sinon essaye ce code?? je l'ai trouvé sur le forum anglais
Code : Tout sélectionner
;#####################################
; Auteur ferblantier forum english
;#####################################
Structure PtrString
StructureUnion
*StrPtr.b
String.s
EndStructureUnion
EndStructure
Procedure.l AmendString(*str.b)
Define.PtrString Result
Result\StrPtr = *str
strlen = Len(Result\String)
For i=0 To strlen/2-1
temp = PeekB(Result\StrPtr + i)
PokeB(Result\StrPtr + i, PeekB(Result\StrPtr + strlen - 1 - i))
PokeB(Result\StrPtr + strlen - 1 - i, temp)
Next
ProcedureReturn Result\StrPtr
EndProcedure
foo$ = "blah"
Debug foo$
Debug @foo$
Debug AmendString(@foo$)
Debug foo$
Debug @foo$
http://translate.google.com/translate?j ... ry_state0=
http://translate.google.com/translate?j ... ry_state0=
Encore merci a tous,
J'ai pas mal avance sur le code de la gestion de RAPI. Je vais faire un post avec le code complet actuel.
Voila le post http://www.purebasic.fr/french/viewtopi ... 9193#99193
Cordialement,
GallyHC
J'ai pas mal avance sur le code de la gestion de RAPI. Je vais faire un post avec le code complet actuel.
Voila le post http://www.purebasic.fr/french/viewtopi ... 9193#99193
Cordialement,
GallyHC
bonjour GallyHC
je vois que tu as le moral c bien !
voila une conversion unicode
j'avais complètement oublié le codearchiv d' Andre
en même temps pour erix14 avec ce code le module couleur reste sans effet sur celui-ci??, alors que les autres codes du post sont converti en couleur.
cordialement
je vois que tu as le moral c bien !
voila une conversion unicode
j'avais complètement oublié le codearchiv d' Andre
en même temps pour erix14 avec ce code le module couleur reste sans effet sur celui-ci??, alors que les autres codes du post sont converti en couleur.
cordialement
Code : Tout sélectionner
; German forum: http://www.purebasic.fr/german/archive/viewtopic.php?t=2212&highlight=
; Author: dige
; Date: 06. October 2003
; OS: Windows
; Demo: No
; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; Note: This code example is now for demonstration only,
; because PB v4 supports Unicode now natively.
; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; Convert PB strings to Unicode strings...
; Wer für API Aufrufe Unicode Strings benötigt ( zum Bsp. für die NetAPI )
; kann diese mit folgendem Workaraound umwandeln:
; PB-String To Unicode
; by DiGe 09/2003
Procedure StringToUnicode ( pbstrptr.l, ucstrptr.l ) ; ANSI Strings nach Unicode codieren
MultiByteToWideChar_ ( #CP_ACP, 0, pbstrptr, Len(PeekS(pbstrptr)), ucstrptr, Len(PeekS(ucstrptr)) )
PokeL ( ucstrptr + Len(PeekS(pbstrptr))*2, 0 )
EndProcedure
; Anwendungsbeispiel:
UserName.s = "dige"
UserName_uc.s = Space ( 255 )
StringToUnicode ( @UserName, @UserName_uc )
; Wichtig, PureBasic kann Unicode Strings nicht verabeiten, d.h. wenn
; der Unicode-Text in der Variblen uc_txt.s ausgelesen oder weiter ver-
; arbeitet werden soll, kann dies nur mit Peek und Poke über die Adresse
; der Variablen @uc_txt geschehen.
; Denn für die PureBasic String Routinen ist der String auf grund der
; Nullbytes nur 1 Zeichen lang.