Ian*_*Ian 3 c# c++ arrays character-encoding strlen
我正在处理C#代码中的char*(在不安全的部分).有没有办法从C#调用strlen函数.不得不编写自定义strlen函数来搜索null终止符,这违背了所有常识.有没有办法从C#调用strlen或我可以访问的类似方法?
在大图中我试图将char*转换为字符串对象,但字符是ANSCII格式,所以我将使用.NET Encoding.Convert命名空间进行转换.但在我这样做之前,我需要知道字符串的长度.
Marshal.PtrToStringAnsi() 完全符合您的要求:
分配托管字符串,并将存储在非托管内存中的字符串中的所有字符复制到第一个空字符.
顺便提一下,该方法调用lstrlenA指针,这实际上只是一个导入kernel32.dll.换句话说,似乎没有可用的管理"让我得到这个非托管字符串的长度"方法.