当前位置:  开发笔记 > 编程语言 > 正文

如何将const char*API导入C#?

如何解决《如何将constchar*API导入C#?》经验,为你挑选了1个好方法。

鉴于此C API声明如何将其导入C#?

const char* _stdcall z4LLkGetKeySTD(void);

我已经能够做到这一点:

   [DllImport("zip4_w32.dll",
       CallingConvention = CallingConvention.StdCall,
       EntryPoint = "z4LLkGetKeySTD",
       ExactSpelling = false)]
   private extern static const char* z4LLkGetKeySTD();

JaredPar.. 12

试试这个

   [DllImport("zip4_w32.dll",
       CallingConvention = CallingConvention.StdCall,
       EntryPoint = "z4LLkGetKeySTD",
       ExactSpelling = false)]
   private extern static IntPtr z4LLkGetKeySTD();

然后,您可以使用Marshal.PtrToStringAnsi()将结果转换为String.您仍然需要使用适当的Marshal.Free*方法释放IntPtr的内存.



1> JaredPar..:

试试这个

   [DllImport("zip4_w32.dll",
       CallingConvention = CallingConvention.StdCall,
       EntryPoint = "z4LLkGetKeySTD",
       ExactSpelling = false)]
   private extern static IntPtr z4LLkGetKeySTD();

然后,您可以使用Marshal.PtrToStringAnsi()将结果转换为String.您仍然需要使用适当的Marshal.Free*方法释放IntPtr的内存.

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有