Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c++;wchar数组到c# 我不懂C++,我必须把一些代码塞入C。我已经设法做了一些位,但我真的不知道如何转换一些行,所以我在这里寻求帮助 这是C++代码: WCHAR wsSerial[MAX_PATH]={'\0'}; WCHAR wsS2[MAX_PATH]={'\0'}; wcscpy_s(wsSerial, MAX_PATH, m_strSerial); wcscpy_s(wsS2,MAX_PATH,wsSerial+8); wsS2[8]=NULL; ULONG ulCode2 = wcstoul(wsS2, NULL,10);_C#_C++_Language Comparisons - Fatal编程技术网

c++;wchar数组到c# 我不懂C++,我必须把一些代码塞入C。我已经设法做了一些位,但我真的不知道如何转换一些行,所以我在这里寻求帮助 这是C++代码: WCHAR wsSerial[MAX_PATH]={'\0'}; WCHAR wsS2[MAX_PATH]={'\0'}; wcscpy_s(wsSerial, MAX_PATH, m_strSerial); wcscpy_s(wsS2,MAX_PATH,wsSerial+8); wsS2[8]=NULL; ULONG ulCode2 = wcstoul(wsS2, NULL,10);

c++;wchar数组到c# 我不懂C++,我必须把一些代码塞入C。我已经设法做了一些位,但我真的不知道如何转换一些行,所以我在这里寻求帮助 这是C++代码: WCHAR wsSerial[MAX_PATH]={'\0'}; WCHAR wsS2[MAX_PATH]={'\0'}; wcscpy_s(wsSerial, MAX_PATH, m_strSerial); wcscpy_s(wsS2,MAX_PATH,wsSerial+8); wsS2[8]=NULL; ULONG ulCode2 = wcstoul(wsS2, NULL,10);,c#,c++,language-comparisons,C#,C++,Language Comparisons,这就是我在C#中的内容: 所以我有两个问题: LS>是一个C++数组,但在C语言中我不需要这个数组,是吗?我的意思是,它所做的只是存储一个大的数字,然后再转换成一个数值,对吗 这到底是干什么的?wcscpy_s(wsS2,最大路径,wsSerial+8)。+8把我甩了 在C语言中,字符串只是一个包含“字符串”的连续区域,以特殊字符结尾。换句话说,一个字符数组。(或wchar\u t用于宽字符串。) 在C#(和C++)中,这是不需要的,因为它有自己特殊的字符串类型,在幕后处理数组内容 关于+8

这就是我在C#中的内容:

所以我有两个问题:

<> LS>是一个C++数组,但在C语言中我不需要这个数组,是吗?我的意思是,它所做的只是存储一个大的数字,然后再转换成一个数值,对吗
  • 这到底是干什么的?wcscpy_s(wsS2,最大路径,wsSerial+8)。+8把我甩了

  • 在C语言中,字符串只是一个包含“字符串”的连续区域,以特殊字符结尾。换句话说,一个字符数组。(或
    wchar\u t
    用于宽字符串。)

    在C#(和C++)中,这是不需要的,因为它有自己特殊的
    字符串
    类型,在幕后处理数组内容



    关于
    +8
    这件事,它只是在复制时跳过
    wsSerial
    的前八个字符。要理解这一点,您应该阅读有关“指针算术”的内容。

    看起来您几乎完全做到了这一点,但是调用

    wsSerial.Substring() 
    
    应该是8,第二个应该是MAX_PATH减去8。

    如下所示:

    string wsSerial = mSerial;
    string wsS2 = wsSerial.Substring(8, 8);
    long ulCode2 = long.Parse(wsS2);
    

    实际上,在C代码中,OP是在8个字符后终止的,因此长度应该是8。不,原始指针是在源指针中添加8,因此开始复制8个字符。是的,但请查看下一个源代码行。Blimey。所以我们正在帮助转录看起来可疑的坏代码!
    string wsSerial = mSerial;
    string wsS2 = wsSerial.Substring(8, 8);
    long ulCode2 = long.Parse(wsS2);