如何将c代码转换为vb.net?

时间:2013-05-21 10:35:58

标签: c vb.net

如何将以下内容转换为VB?这是什么意思?

unsigned char *s = (unsigned char *)(void *)serialNum;  

2 个答案:

答案 0 :(得分:0)

从背景来看很难说清楚。据推测,serialNum是一个未键入的(C中的void *)指针。

指针值被复制到s,其类型为“指向无符号字符的指针”。

代码看起来好像有人在serialNum中构建了一个字符串,但指针是以非类型方式共享的,因此接收者需要知道它应该被视为unsigned char *

答案 1 :(得分:0)

从我对VB的了解很少,我不确定是否有翻译。

看起来代码的意图是取整数值(serialNum)并将其用作字节序列(s)的地址

unsigned char *s声明s是指向unsigned char的指针;存储在s中的值是单个字节的地址或序列的第一个字节。

(unsigned char *)(void *)演员操作;它们用于将表达式的类型转换为其他类型。 C的类型规则是这样的,你不能直接为指针变量赋一个整数值;必须使用强制转换操作将整数值转换为指针类型。 (void *) serialNum将表达式serialNum的类型从int(或其他)转换为void *,这是C的“通用”指针的概念。 (unsigned char *)将前一个表达式的结果转换为指向unsigned char的指针。

(void *)强制转换操作是多余的IMO,以下内容也可以正常工作:

unsigned char *s = (unsigned char *) serialNum;

同样,我不知道VB中的适当翻译是什么。