qq_28768929
A丶Knight
2018-06-11 07:29

Unity C#通过动态链接库调用C++传递中文字符串乱码问题。

10
  • unity
  • 混编
  • c++
  • 乱码

我在C++端写了一个函数,参数有一个char* 类型的字符串表示文件名,函数里面通过调用win32API实现将这个文件名所指向的文件写入系统剪切板便于用户在别处手动粘贴。
C#脚本导入动态链接库的时候,形参声明为了byte[]类型,在传递实参时,使用System.Text.Encoding.ASCII.GetBytes将string类型转换成ASII字符序列。
如果动态链接库发布x64版本,中文的路径和文件名都正常,可是如果动态链接库发布86版本,传递过去的字符串如果带有中文路径就会出现乱码,而如果只是中文文件名,。目录是英文和数字,就正常。
据我所知系统位数不会影响字符串编码吧?请问有谁知道原因。

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

2条回答