c++ char * 转换c# 一般直接string 或者Marshal.StringToHGlobalAnsi(“string”)为IntPtr 即可。
但是如果string包含中文,c++收到中文是乱码。
解决办法:把string转为byte[] 再放到内存指针即可。
复制代码
1
2
3
4
5byte[] encodedBytes=Encoding.UTF8.GetBytes("string"); IntPtr wordPtr = Marshal.AllocHGlobal(encodedBytes.Length); Marshal.Copy(encodedBytes, 0, wordPtr, encodedBytes.Length);
最后将wordPtr传给c++即可。
最后
以上就是大气黑裤最近收集整理的关于c# 传中文字符给c++ 出现乱码问题的全部内容,更多相关c#内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复