gpt4 book ai didi

c# - c++ wchar数组到c#

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:55:15 26 4
gpt4 key购买 nike

我不了解 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# 中的内容:

        string wsSerial;
string wsS2;

wsSerial = mSerial; //an external input
wsS2 = wsSerial + 8;
wsS2= wsSerial.Substring(0, 8);
long ulCode2 = long.Parse(wsS2);

所以我有两个问题:

  1. wsSerial 是 C++ 中的数组,但我不需要 C# 中的数组,对吗?我的意思是,它所做的只是存储一个大数字,然后将其转换为数值,对吧?
  2. 这到底是做什么的? wcscpy_s(wsS2、MAX_PATH、wsSerial+8)。 + 8 让我失望。

最佳答案

在 C 中,字符串只是一个包含字符“字符串”的连续区域,以特殊字符结尾。换句话说,一个 char 数组。 (或者 wchar_t 用于宽字符字符串。)

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


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

关于c# - c++ wchar数组到c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14934986/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com