2011-05-02 6 views
0

Salut ont besoin d'aide pour convertir ce code C++ C#besoin pour aider à convertir

sprintf((char *)(dataBuffer), "Failed statistics read, device %s", device); 

Le DataBuffer est byte []

je l'ai écrit, mais avec la chaîne de conversion d'erreur à l'octet []

dataBuffer = string.Format("Failed statistics read, device {0}", device); 
+1

C'est le bon code pour convertir cette instruction. Qu'est-ce que c'est qu'un 'byte []'? Il n'y a pas de tableau d'octets dans le code C++. –

+0

@Jonathan Wood Une estimation (mais seulement une supposition) est que dataBuffer est un octet []. Partiellement supporté par le cast (char *). –

+0

@icktoofay: Si c'est le cas, le code d'origine est erroné car '% s' est utilisé pour formater les données, et'% s' est pour 'char *'. Il se peut qu'un tableau d'octets ait été utilisé pour stocker des caractères ASCII. Mais cela serait encore imparfait. –

Répondre

2
String str = string.Format("Failed statistics read, device {0}", device); 
byte[] dataBuffer = System.Text.Encoding.ASCII.GetBytes(str); 
// for 2-byte unicode 
byte[] dataBuffer = System.Text.Encoding.Unicode.GetBytes(str); 
// for UTF8 unicode 
byte[] dataBuffer = System.Text.Encoding.UTF8.GetBytes(str); 
Questions connexes