【发布时间】:2012-04-11 19:41:02
【问题描述】:
我正在处理 C# 代码中的 char*(在不安全部分)。有什么方法可以从 C# 调用 strlen 函数。必须编写自定义 strlen 函数来搜索空终止符,这违反了所有常识。有没有办法从 C# 或我有权访问的类似方法调用 strlen?
总体而言,我正在尝试将 char* 转换为字符串对象,但字符是 ANSCII 格式,因此我将使用 .NET Encoding.Convert 命名空间进行转换。但在我这样做之前我需要知道字符串的长度。
【问题讨论】:
-
@dlev 我从 Scintilla 环境中得到这个 char*,所以我无法控制它。我没有直接得到长度,但我可以从其他一些东西中计算出来。我只是认为,如果他们让你处理 char*,那么一定有一种方法可以在 C# 中执行相当于 strlen 的操作。我知道我不是第一个想到这个的人。
-
char是两个字节宽,所以如果你的char*指向单字节数据,你可能根本找不到空终止符。
标签: c# c++ character-encoding strlen arrays