[Résolu] AllocateMemory() : Erreur d'initialisation.
Publié : lun. 21/sept./2015 15:28
PB 5.31 (x86) - Windows 10
Je me bat avec un souci d’initialisation mémoire durant un traitement par lot. Le code de mon application étant trés long, j'ai extrait la partie qui ne fonctionne pas.
L'objectif de ce code consiste à:
1 - Extraire une structure JSON contenant différents contenu de fichiers (Meshs, Images, ...) vers une liste chaînée.
2 - Pour chaque type de fichier, initialiser une zone mémoire pour reconstitution du fichier.
C'est la phase 2 qui actuellement me pose un souci. Si je charge le fichier une deuxiéme fois, j'ai une erreur d'intialisation.
Si vous souhaitez m'aider, vous pouvez télécharger le code et le fichier JSON en cliquant sur ce lien.
http://s242132022.onlinehome.fr/downloa ... yerror.zip
Merci.
Je poste le code au cas ou un jour, cette piéce jointe n'existe plus.
Je me bat avec un souci d’initialisation mémoire durant un traitement par lot. Le code de mon application étant trés long, j'ai extrait la partie qui ne fonctionne pas.
L'objectif de ce code consiste à:
1 - Extraire une structure JSON contenant différents contenu de fichiers (Meshs, Images, ...) vers une liste chaînée.
2 - Pour chaque type de fichier, initialiser une zone mémoire pour reconstitution du fichier.
C'est la phase 2 qui actuellement me pose un souci. Si je charge le fichier une deuxiéme fois, j'ai une erreur d'intialisation.
Si vous souhaitez m'aider, vous pouvez télécharger le code et le fichier JSON en cliquant sur ce lien.

Merci.
Je poste le code au cas ou un jour, cette piéce jointe n'existe plus.
Code : Tout sélectionner
Enumeration
#JSONFile
EndEnumeration
Structure NewEntity
id.i ;Cursor
ItemCreation.s
mesh.i
texture.i
material.i
meshBuffer.s
meshFile.s
meshFileExt.s
meshLength.i
imageFile.s
imageFileExt.s
image.s
imageBlend.b
script.s
x.f
y.f
z.f
rx.f
ry.f
rz.f
sx.f
sy.f
sz.f
speed.f
rotate.f
fly.f
EndStructure
Global NewList Work.NewEntity()
For i = 0 To 100
Debug "Passe " + Str(i)
If LoadJSON(#JSONFile, "test.json", #PB_JSON_NoCase)
ExtractJSONList(JSONValue(#JSONFile), Work())
ForEach Work()
With Work()
Select \ItemCreation
Case "Mesh"
;*InputBuffer = AllocateMemory(\meshLength)
*InputBuffer = AllocateMemory(Int(\meshLength * 1.30))
Base64Decoder(@\meshBuffer, Len(\meshBuffer), *InputBuffer, \meshLength)
;Case autre cas
EndSelect
EndWith
If *InputBuffer
FreeMemory(*InputBuffer)
EndIf
Next
Else
Debug "Ooops ! Souci"
EndIf
Next