Sono uno sviluppatore C++ e di recente ho iniziato a lavorare su WPF. Bene, sto usando Array.Copy() nella mia app e sembra che non sia in grado di ottenere completamente il risultato desiderato.Errore nell'uso di Array.Copy() nell'app WPF
che avevo fatto nella mia C++ app come segue:
static const signed char version[40] = {
'A', 'U', 'D', 'I', 'E', 'N', 'C', 'E', // name
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , // reserved, firmware size
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , // board number
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , // variant, version, serial
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 // date code, reserved
};
unsigned char sendBuf[256] = {};
int memloc = 0;
sendBuf[memloc++] = 0;
sendBuf[memloc++] = 0;
// fill in the audience header
memcpy(sendBuf+memloc, version, 8); // the first 8 bytes
memloc += 16; // the 8 copied, plus 8 reserved bytes
ho fatto l'operazione simile nel mio WPF (C#) app come segue:
Byte[] sendBuf = new Byte[256];
char[] version =
{
'A', 'U', 'D', 'I', 'E', 'N', 'C', 'E', // name
'0', '0', '0', '0', '0', '0', '0', '0' , // reserved, firmware size
'0', '0', '0', '0', '0', '0', '0', '0' , // board number
'0', '0', '0', '0', '0', '0', '0', '0' , // variant, version, serial
'0', '0', '0', '0', '0', '0', '0', '0' // date code, reserved
};
// fill in the address to write to -- 0
sendBuf[memloc++] = 0;
sendBuf[memloc++] = 0;
// fill in the audience header
Array.Copy(sendBuf + memloc, version, 8); // the first 8 bytes
memloc += 16;
Ma mi tiri un errore in Array.Copy(sendBuf + memloc, version, 8);
come Operator '+' cannot be applied to operands of type 'byte[]' and 'int'
.
Come ottenere questo ???? :) per favore aiuto :)
Proprio così. C# non ha pazze conversioni implicite di array-> puntatore per confondere tutti. – chris
@chris: Allora come possiamo raggiungerlo amico? :) Qualunque modo alternativo? –
Non sarei la persona da chiedere. Non ho ancora molta esperienza con C#, ma mi piace il modo in cui gestisce alcuni dei difetti che ho trovato in C/C++. – chris