PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV (précédentes versions) → variable en C de type byte
variable en C de type byte
Débuté par frank, 03 sep. 2021 11:07 - 2 réponses
Posté le 03 septembre 2021 - 11:07
bonjour,
je développe en WD22 et j'utilise une DLL qui contient la fonction suivante expliquée en C :
pGetMessageList(int iID,ref byte list);

je n'arrive pas à utiliser cette fonction de la DLL (j'y arrive sur les autres) . je ne comprends pas le type de variable qu'il faut pour byte list.

est ce que je peux avoir votre aide.
Posté le 03 septembre 2021 - 11:38
voila tout ce que j'ai sur cette fonction de la DLL

[DllImport("SEngine32.dll", EntryPoint = "pGetMessageList", SetLastError = true, CallingConvention = CallingConvention.StdCall)]
public static extern int pGetMessageList(int iID,ref byte list);
string strLsit = "";
byte[] bType = new byte[1024];
int iRlt = pGetMessageList(m_hPrinterID, ref bType[0]);
strLsit = System.Text.Encoding.ASCII.GetString(bType).Replace("\0", null);
string[] arry
= strLsit.Split(',');
if(arry.Length>0)
{
msglst.Items.AddRange(arry);
}
Membre enregistré
3 889 messages
Popularité : +227 (347 votes)
Posté le 03 septembre 2021 - 13:01
Bonjour
Byte correspond à une variable de type octet (entier sur 1) Byte List et donc un tableau d'octets.
On retrouve une variante de cette définition dans Byte[]
bType est déclaré en tant que tableau d'octets. Lors de son allocation via new il "devient" un tableau de 1024 octets.
Le mot clé ref signifie signifie que ton tableau est passé par référence (i.e. c'est son adresse qui est envoyée) comme dans Windev. Cela signifie qu'une modification des valeurs du tableau dans la fonction se répercutera dans la fonction appelante à la fin de la fonction.

--
Il y a peut être plus simple, mais, ça tourne