Je crois avoir compris,
as tu un exemple stp ?
Merci
SendNetworkData()
Trop tard... 
En espérant que ca corresponde à ce que tu cherches à faire...
Dri 

En espérant que ca corresponde à ce que tu cherches à faire...
Code : Tout sélectionner
Enumeration
#FinMessageNormal
#FinMessageErreur
#FinMessageTruc
EndEnumeration
#TailleMaxMessage = $2000
Dim TypeMessage.s(#FinMessageTruc)
TypeMessage(#FinMessageNormal) = "Message"
TypeMessage(#FinMessageErreur) = "Erreur"
TypeMessage(#FinMessageTruc) = "Machin"
Procedure CreerMessage(Message.s, Type.l)
TailleMessage.l = Len(Message) + 8
ptr = AllocateMemory(TailleMessage)
PokeL(ptr, Len(Message))
PokeS(ptr + 4, Message, Len(Message))
PokeL(ptr + TailleMessage - 4, Type)
ProcedureReturn ptr
EndProcedure
Procedure TailleMessage(Message.l)
ProcedureReturn PeekL(Message) + 8
EndProcedure
Procedure LireMessage(Message.l)
Taille.l = PeekL(Message)
Type.l = PeekL(Message + 4 + Taille)
Titre.s = TypeMessage(Type)
Contenu.s = PeekS(Message + 4, Taille)
MessageRequester(Titre, Contenu)
FreeMemory(Message)
EndProcedure
Procedure EnvoyerMessage(Client.l, Message.l)
SendNetworkData(Client, Message, TailleMessage(Message))
EndProcedure
Procedure RecevoirMessage(Client.l)
ptr = AllocateMemory(#TailleMaxMessage)
ReceiveNetworkData(Client, ptr, #TailleMaxMessage)
ProcedureReturn ptr
EndProcedure
;- Debut du programme
msg = CreerMessage("Bonjour, ceci est un message", #FinMessageNormal)
LireMessage(msg)
msg = CreerMessage("Le fichier n'existe pas sur le serveur", #FinMessageErreur)
LireMessage(msg)
msg = CreerMessage("Euuuuuuh", #FinMessageTruc)
LireMessage(msg)

Un example plus simple qui montre bien le truc :
Code : Tout sélectionner
test.s = "bouh" + Chr(0) + "hahaha"
Debug test
Effectivement ton exemple montre bien le "problème" des null string...cederavic a écrit :Un example plus simple qui montre bien le truc :Code : Tout sélectionner
test.s = "bouh" + Chr(0) + "hahaha" Debug test
Le mien montre (j'espère) comment Lea40 peut s'y prendre...
Dri