delphi中的PwideChar在c#中用哪个类型代替?

Function ks_cmd(cmdName: PwideChar; cmdData: PwideChar): PwideChar; stdcall;

有个dll是delphi写的,代码如上,我想在c#调用这个dll,不知道声明怎么写

3个回答

StringBuilder或者byte[]然后用 Encoding.编码.GetString

[DllImport(FileDLL,
CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
private static extern IntPtr ks_cmd(StringBuilder v_cmdName, StringBuilder v_cmdData);

[DllImport(FileDLL,
CharSet = CharSet.Ansi, CallingConvention = CallingConvention.StdCall)]
private static extern IntPtr ks_cmd(byte[] v_cmdName, byte[] v_cmdData);

都试过,得到不正确的值,还有哪位大哥有招?

CharSet.Ansi对应delphi的AnsiString或PAnsiChar,CharSet.Unicode对应delphi的WideString或PWideChar

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问