首页 > 解决方案 > 在 c# 中创建一个与 linux 兼容的 wchar_t* 字符串作为 char*

问题描述

假设我在 c# (.NET Core) 中定义了一个结构

   public struct PARAMS
   {
       public unsafe char* pFileName;
[...]
   }

和一个 C++ 结构

typedef struct
{
    wchar_t* pwchFileName;
} PARAMS

给定一个 .NET 字符串,如何在 C# 中创建正确的数据结构?struct是一个P/Invoke的参数,目标操作系统是64位Linux。我无法更改任何结构或 api。从我到目前为止的研究来看,windows 和 linux 之间可能存在差异(utf-16 与 utf-32)?

标签: c#c++

解决方案


推荐阅读