转换为C++;到C#
在c++中: 在c#中 C#(一般来说)没有指针。也许以下是你想要的:转换为C++;到C#,c#,c++,C#,C++,在c++中: 在c#中 C#(一般来说)没有指针。也许以下是你想要的: byte des16[16]; [0] 207 'Ï' unsigned char [1] 216 'Ø' unsigned char [2] 108 'l' unsigned char [3] 93 ']' unsigned char [4] 249 'ù' unsigned char [5] 249 'ù' unsigned char [6] 100 'd' un
byte des16[16];
[0] 207 'Ï' unsigned char
[1] 216 'Ø' unsigned char
[2] 108 'l' unsigned char
[3] 93 ']' unsigned char
[4] 249 'ù' unsigned char
[5] 249 'ù' unsigned char
[6] 100 'd' unsigned char
[7] 0 unsigned char
[8] 76 'L' unsigned char
[9] 50 '2' unsigned char
[10] 104 'h' unsigned char
[11] 118 'v' unsigned char
[12] 104 'h' unsigned char
[13] 191 '¿' unsigned char
[14] 171 '«' unsigned char
[15] 199 'Ç' unsigned char
after
byte *d = des16+8;
d = "L2hvh¿«Ç†¿æ^ òÎL2hvh¿«Ç"
这段代码为您提供了索引8处的元素
如果我读对了代码,那么您正在尝试获取索引8处元素的地址。一般来说,这在C#中是不可能的(除非您使用了不安全的代码)。C#(一般来说)没有指针。也许以下是你想要的:
byte des16[16];
[0] 207 'Ï' unsigned char
[1] 216 'Ø' unsigned char
[2] 108 'l' unsigned char
[3] 93 ']' unsigned char
[4] 249 'ù' unsigned char
[5] 249 'ù' unsigned char
[6] 100 'd' unsigned char
[7] 0 unsigned char
[8] 76 'L' unsigned char
[9] 50 '2' unsigned char
[10] 104 'h' unsigned char
[11] 118 'v' unsigned char
[12] 104 'h' unsigned char
[13] 191 '¿' unsigned char
[14] 171 '«' unsigned char
[15] 199 'Ç' unsigned char
after
byte *d = des16+8;
d = "L2hvh¿«Ç†¿æ^ òÎL2hvh¿«Ç"
这段代码为您提供了索引8处的元素
如果我读对了代码,那么您正在尝试获取索引8处元素的地址。一般来说,这在C#中是不可能的(除非使用不安全的代码)
除非使用不安全代码,否则无法检索指针
除非使用不安全的代码,否则无法检索指针。我认为这更合适(尽管这取决于d的使用方式): 注意:这将创建一个单独的数组实例,该数组包含des16中的项(前8项除外) 否则,如果不了解它是如何使用的,就不完全清楚什么是最佳用途 [编辑] 您可能正在.Net 2.0的缓冲区中使用以null结尾的字符串(如果
Skip()
不可用)。如果需要字符串表示,可以将其转换为本机字符串对象
byte[] d = des16.Skip(8).ToArray();
我认为这更合适(尽管这取决于d的使用方式): 注意:这将创建一个单独的数组实例,该数组包含des16中的项(前8项除外) 否则,如果不了解它是如何使用的,就不完全清楚什么是最佳用途 [编辑] 您可能正在.Net 2.0的缓冲区中使用以null结尾的字符串(如果
Skip()
不可用)。如果需要字符串表示,可以将其转换为本机字符串对象
byte[] d = des16.Skip(8).ToArray();
@杰斐多,谢谢你睁开我的眼睛 在c++中:
byte[] des16 = new byte[16];
char[] chararr = Array.ConvertAll(des16, delegate(byte b) { return (char)b; }); //convert to an array of characters
string str = new String(chararr, 8, chararr-8); //create the string
在c#中:
@杰斐多,谢谢你睁开我的眼睛 在c++中:
byte[] des16 = new byte[16];
char[] chararr = Array.ConvertAll(des16, delegate(byte b) { return (char)b; }); //convert to an array of characters
string str = new String(chararr, 8, chararr-8); //create the string
在c#中:
指针基本上正在被转换。我们可以将其更改为c#格式的集合 在C++中,如果需要将集合(字符串)更改为C中的字节[]集合,则可以执行如下代码。
byte[]toBytes=Encoding.ASCII.GetBytes(somestring) 指针基本上正在转换。我们可以将其更改为c#格式的集合 在C++中,如果需要将集合(字符串)更改为C中的字节[]集合,则可以执行如下代码。
byte[]toBytes=Encoding.ASCII.GetBytes(somestring) 是的,但这需要对C++-go-er.Point进行一些解释。我应该详细说明一下。谢谢大家,但还是不行System.Array不包含“Skip”的定义。为True,但这需要对C++-go-er.Point进行一些解释。我应该详细说明一下。谢谢大家,但还是不行System.Array不包含“跳过”的定义。谢谢大家,但仍然不是它。谢谢大家,但仍然不是它。谢谢大家,但仍然不是它。谢谢大家,但仍然不是它。
byte[] des16 = new byte[16];
char[] chararr = Array.ConvertAll(des16, delegate(byte b) { return (char)b; }); //convert to an array of characters
string str = new String(chararr, 8, chararr-8); //create the string
byte des16[16];
byte *d = des16+8;
byte[] des16 = new byte[16];
byte[] b = new byte[8];
System.Array.Copy(des16, 8, b, 0, 8);